Ocultar mis propios comentarios en gadget últimos comentarios en blogger
Mostrando resultados del 1 al 2 de 2
  1. #1
    Saludos compañeros de forobeta, desde hace mucho intentaba ocultar mis propios comentarios en el gadget últimos comentarios en blogger, una vez logrado esto, traigo un tutorial por si le puede servir a mas de alguno.

    A muchos les parecerá un código bastante extenso y quizá le generara duda al igual que a mí puesto que no me gustan los gadget con codigos extensos, pero vale la pena el resultado y lo manejable que es, contrario al gadget que tenía de comentarios con feedburner que es más difícil de modificar, empecemos.

    De igual forma solo debemos agregar un gadget: Diseño - Añadir un gadget - y la opción HTML.

    El codigo que pegaremos será el siguiente:

    Código HTML:
    <style type="text/css">
    .recent-comment        { margin-bottom:10px; padding-left: 24px; }
    .recent-comment-admin  { background-color: #F4F4F4; }
    .recent-comment-ico    { margin-left:-20px;margin-top:4px;float:left;margin-right:3px;}
    .recent-comment-header {}
    .recent-comment-body   { padding-right: 4px; font-size: 95%;}
    .recent-comment-footer { font-size: 85%; }
    </style>
    <script type="text/javascript">
    //
    // Recent Comments blogger gadget by MS-potilas 2011, using feed avatars
    // see http://yabtb.blogspot.com/2011/12/son-of-better-recent-comments-gadget.html
    //
    // CONFIG:
    var numRecentComments = 5;
    var numPerPost = 2; // max comments per post (to try) or 0
    var maxCommentChars = 90;
    var maxPostTitleChars = 0; // if 0, use full post title
     
    var txtWrote = 'wrote:';
    var txtMore = 'Continue >>';
    var txtTooltip = '[user] on &quot;[title]&quot; - [date MM/dd/yyyy hh:mm]';
    var txtAnonymous = ''; // empty, or Anonymous user name localized
    // Variables [xxx] in texts:
    // supports [title], [user], [date], [time], [datetime], [date format]
    // format supports: yyyy=long year, yy=short year, MM=month(01-12), dd=monthday, hh=hour, mm=min, ss=sec
     
    var getTitles = true;   // false faster
    var trueAvatars = true; // false faster
    var urlMyAvatar = '';   // can be empty (then it is fetched) or url to image
    var urlMyProfile = '';  // set if you have no profile gadget on page
    //
    var cropAvatar = true;
    var sizeAvatar = 16;
    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
    //
    var urlAnoAvatar = 'http://www.gravatar.com/avatar/00000000000000000000000000000000?d=mm&s=' + sizeAvatar;
    var maxResultsPosts = "";       // or for example "&max-results=100"
    var maxResultsComments = "";    // or for example "&max-results=300"
    // CONFIG END
    var urlToTitle = {};
    function replaceVars(text, user, title, date) {
      text = text.replace('[user]', user);
      text = text.replace('[date]', date.toLocaleDateString());
      text = text.replace('[datetime]', date.toLocaleString());
      text = text.replace('[time]', date.toLocaleTimeString());
      text = text.replace('[title]', title.replace(/\"/g,'&quot;'));
      var i = text.indexOf("[date ");
      if(i > -1) {
        var format = /\[date\s+(.+?)\]/.exec(text)[1];
        if(format != '') {
          var txtDate = format.replace(/yyyy/i, date.getFullYear());
          txtDate = txtDate.replace(/yy/i, date.getFullYear().toString().slice(-2));
          txtDate = txtDate.replace("MM", String("0"+(date.getMonth()+1)).slice(-2));
          txtDate = txtDate.replace("mm", String("0"+date.getMinutes()).slice(-2));
          txtDate = txtDate.replace("ss", String("0"+date.getSeconds()).slice(-2));
          txtDate = txtDate.replace("dd", String("0"+date.getDate()).slice(-2));
    //or: txtDate = txtDate.replace("dd", date.getDate());
          txtDate = txtDate.replace("hh", String("0"+date.getHours()).slice(-2));
    //or: txtDate = txtDate.replace("hh", date.getHours());
          text = text.replace(/\[date\s+(.+?)\]/, txtDate)
        }
      }
      return text;
    }
    if(urlMyProfile == "") {
      var elements = document.getElementsByTagName("*");
      var expr = /(^| )profile-link( |$)/;
      for(var i=0 ; i<elements.length ; i++)
        if(expr.test(elements[i].className)) {
          urlMyProfile = elements[i].href;
          break;
        }
    }
    function getPostUrlsForComments(json) {
      for(var i = 0 ; i < json.feed.entry.length ; i++ ) {
        var entry = json.feed.entry[i];
        for (var k = 0; k < entry.link.length; k++ ) {
          if (entry.link[k].rel == 'alternate') {
            href = entry.link[k].href;
            break;
          }
        }
        urlToTitle[href] = entry.title.$t;
      }
    }
    function showRecentComments(json) {
      var postHandled = {};
      var j = 0;
      if(numPerPost) {
        while(numPerPost < numRecentComments) {
          for(var i = 0 ; i < json.feed.entry.length ; i++ ) {
            var entry = json.feed.entry[i];
            if(entry["thr$in-reply-to"]) {
              if(!postHandled[entry["thr$in-reply-to"].href])
                  postHandled[entry["thr$in-reply-to"].href] = 1;
              else
                  postHandled[entry["thr$in-reply-to"].href]++;
              if(postHandled[entry["thr$in-reply-to"].href] <= numPerPost)
                j++;
            }
          }
          if(j >= numRecentComments)
            break;
          numPerPost++;
          j = 0;
          postHandled = {};
        }
        if(numRecentComments == numPerPost)
           numPerPost = 0;
      }
      postHandled = {};
      j = 0;
      for(var i = 0 ; j < numRecentComments && i < json.feed.entry.length ; i++ ) {
        var entry = json.feed.entry[i];
        if(numPerPost && postHandled[entry["thr$in-reply-to"].href] && postHandled[entry["thr$in-reply-to"].href] >= numPerPost)
          continue;
        if(entry["thr$in-reply-to"]) {
          if(!postHandled[entry["thr$in-reply-to"].href])
              postHandled[entry["thr$in-reply-to"].href] = 1;
          else
              postHandled[entry["thr$in-reply-to"].href]++;
          j++;
          var href='';
          for (var k = 0; k < entry.link.length; k++ ) {
            if (entry.link[k].rel == 'alternate') {
              href = entry.link[k].href;
              break;
            }
          }
          if(href=='') {j--; continue; }
          var hrefPost = href.split("?")[0];
          var comment = "";
          if("content" in entry) comment = entry.content.$t;
          else                   comment = entry.summary.$t;
          comment = comment.replace(/<br[^>]*>/ig, " ");
          comment = comment.replace(/<\S[^>]*>/g, "");
          var postTitle="-";
          if(urlToTitle[hrefPost]) postTitle=urlToTitle[hrefPost];
          else {
            if(hrefPost.match(/\/([^/]*)\.html/)) postTitle = hrefPost.match(/\/([^/]*)\.html/)[1].replace(/_\d{2}$/, "");
            postTitle = postTitle.replace(/-/g," ");
            postTitle = postTitle[0].toUpperCase() + postTitle.slice(1);
          }
          if(maxPostTitleChars && postTitle.length > maxPostTitleChars) {
            postTitle = postTitle.substring(0, maxPostTitleChars);
            var indexBreak = postTitle.lastIndexOf(" ");
            postTitle = postTitle.substring(0, indexBreak) + "...";
          }
     
          var authorName = entry.author[0].name.$t;
          var authorUri = "";
          if(entry.author[0].uri && entry.author[0].uri.$t != "")
            authorUri = entry.author[0].uri.$t;
       
          var avaimg = urlAnoAvatar;
          var bloggerprofile = "http://www.blogger.com/profile/";
          if(trueAvatars && entry.author[0].gd$image && entry.author[0].gd$image.src && authorUri.substr(0,bloggerprofile.length) == bloggerprofile)
            avaimg = entry.author[0].gd$image.src;
          else {
            var parseurl = document.createElement('a');
            if(authorUri != "") {
              parseurl.href = authorUri;
              avaimg = 'http://www.google.com/s2/favicons?domain=' + parseurl.hostname;
            }
          }
          if(urlMyProfile != "" && authorUri == urlMyProfile && urlMyAvatar != "")
            avaimg = urlMyAvatar;
          if(avaimg == "http://img2.blogblog.com/img/b16-rounded.gif" && urlNoAvatar != "")
            avaimg = urlNoAvatar;
          var newsize="s"+sizeAvatar;
          avaimg = avaimg.replace(/\/s\d\d+-c\//, "/"+newsize+"-c/");
          if(cropAvatar) newsize+="-c";
          avaimg = avaimg.replace(/\/s\d\d+(-c){0,1}\//, "/"+newsize+"/");
          if(authorName == 'Anonymous' && txtAnonymous != '' && avaimg == urlAnoAvatar)
            authorName = txtAnonymous;
          var imgcode = '<img height="'+sizeAvatar+'" width="'+sizeAvatar+'" title="'+authorName+'" src="'+avaimg+'" />';
          if (authorUri!="") imgcode = '<a href="'+authorUri+'">'+imgcode+'</a>';
          var clsAdmin = "";
          if(urlMyProfile != "" && authorUri == urlMyProfile)
              clsAdmin = " recent-comment-admin";
          var datePart = entry.published.$t.match(/\d+/g); // assume ISO 8601
          var cmtDate = new Date(datePart[0],datePart[1]-1,datePart[2],datePart[3],datePart[4],datePart[5]);
     
          var txtHeader = txtWrote;
          if(txtWrote.indexOf('[')==-1)
            txtHeader = authorName + ' ' + txtWrote;
          else
            txtHeader = replaceVars(txtHeader, authorName, postTitle, cmtDate);
     
          var tooltip = replaceVars(txtTooltip, authorName, postTitle, cmtDate);
          if(!/#/.test(href)) href += "#comments";
          document.write('<div title="'+tooltip+'" class="recent-comment'+clsAdmin+'">');
          document.write('<div title="'+tooltip+'" class="recent-comment-header'+clsAdmin+'"><div title="'+tooltip+'" class="recent-comment-ico'+clsAdmin+'">'+imgcode+'</div><a title="'+tooltip+'" href="' + href + '">' + txtHeader + ' </a></div>');
          if(comment.length < maxCommentChars)
            document.write('<div title="'+tooltip+'" class="recent-comment-body'+clsAdmin+'">' + comment + '</div>');
          else {
            comment = comment.substring(0, maxCommentChars);
            var indexBreak = comment.lastIndexOf(" ");
            comment = comment.substring(0, indexBreak);
            document.write('<div title="'+tooltip+'" class="recent-comment-body'+clsAdmin+'">' + comment + '...</div>');
            if(txtMore != "") {
              var moretext = replaceVars(txtMore, authorName, postTitle, cmtDate);
              document.write('<div title="'+tooltip+'" class="recent-comment-footer'+clsAdmin+'"><a title="'+tooltip+'" href="' + href + '">' + moretext + '</a></div>');
            }
          }
          document.write('<div style="clear:both;"></div></div>');
        }
      }
    }
    if(getTitles)
      document.write('<script type="text/javascript" src="http://'+window.location.hostname+'/feeds/posts/summary?redirect=false'+maxResultsPosts+'&alt=json-in-script&callback=getPostUrlsForComments"></'+'script>');
    document.write('<script type="text/javascript" src="http://'+window.location.hostname+'/feeds/comments/default?redirect=false'+maxResultsComments+'&alt=json-in-script&callback=showRecentComments"></'+'script>');
    </script>
    Este será el resultado:

    gadget tutorial 1.jpg

    Una vez puesto vamos a ocultar nuestros propios comentarios, buscaremos esta linea: function showRecentComments(json) pero OJO, eso es solo para localizar las siguientes lineas que son la que modificaremos, después de encontrar esa linea bajamos unas 6 lineas y encontramos esta: var entry = json.feed.entry[i]; y la reemplazaremos por esta: var entry = json.feed.entry[i]; if(entry.author[0].name.$t=="Wallpapers Anime SV") continue; pero donde dice Wallpapers Anime Sv lo sustituiran por el nombre de su cuenta con la cual tienen creado el blog, es decir, tal cual aparece su nombre en el gadget últimos comentarios.

    Luego bajamos 22 líneas y encontramos de nuevo esta linea: var entry = json.feed.entry[i]; es idéntica a la que sustituimos pero volvemos a hacer lo mismo y la reemplazamos por esta: var entry = json.feed.entry[i]; if(entry.author[0].name.$t=="Wallpapers Anime SV") continue;

    Ahora como queda:

    gadget tutorial 2.jpg

    Una vez lo logremos podemos empezar a modificar el tamaño de la imágenen que queramos, o si deseamos que los nombres de los usuarios que comentaron aparezcan de otro color,primero crear una copia de seguridad siempre que editamos algo de nuestra plantilla, vamos a editar plantilla y buscan la siguiente linea: ]]></b:skin>

    antes del codigo b:skin debemos pegar el siguiente codigo pero OJO, en vez de HTML2 debemos poner el numero del gadget de nuestro comentario, si es HTML1, HTML2, HTML3 y así sucesivamente. También pueden reemplazar el código del color y poner el color que ustedes prefieran.

    #HTML2 a:link {
    color:#3890CB;
    text-decoration:none;
    }
    #HTML2 a:visited {

    color:#3890CB;
    text-decoration:none;
    }
    #HTML2 a:hover {

    color:#A91A1A;
    text-decoration:none;
    }[/HTML]

    Se verá así:

    gadget tutorial 3.jpg

    Otras funciones que pueden modificar son:

    var numRecentComments = 5; //Donde cinco es el número máximo de comentarios.
    var numPerPost = 2; // Donde 2 es el máximo numero de comentarios por post, es decir los últimos 5 comentarios están en el mismo post, solo aparecerán dos, si tu quieres que cada comentario sea de distinto post, pon 1, si quieres que eso no importe y si los 5 últimos comentarios son del mismo post y tu quieres igual que salgan pones un numero elevado como por ejemplo 100
    var maxCommentChars = 90; //Donde 90 son el máximo numero de letras o caracteres que aparecen en el comentario. puedes poner menos o más según tu gusto.
    var txtWrote = 'wrote:'; Puedes poner en vez de wrote algo así como Escribió en: o Dijo en:
    var txtMore = 'Continue >>'; // Continue es el texto que aparece cuando el comentario es largo y da paso a seguir leyendo, yo lo reemplazo por Terminar de leer el comentario o leer más
    var sizeAvatar = 16; El tamaño de la imagen del que comenta, modificar a tu gusto mas pequeña o más grande.

    IMPORTANTE: Pueden darse dos errores dependiendo la plantilla: 1 No se oculten los comentarios del admin si el nombre lleva caracteres especial como @ u otros simbolos. y 2 que el título de la página donde está el comentario no aparezca tal cual se muestra en las imágenes, dice wrote: pero no dice wrote y el titulo donde está el comentario, hay una posible solución a cada caso a continuación:

    Si no se ocultan los comentarios, en vez de poner el nombre de usuario de admin, se juega con el link del perfil, y la linea que reemplazaremos quedaría así:

    var entry = json.feed.entry[i]; if(entry.author[0].uri.$t=="http://www.blogger.com/profile/09492675720895007928") continue;

    Donde profile/09492675720895007928 es el numero de id de tu perfil

    Si no funciona de esta manera no sé cual sería otra forma para hacerlo funcionar.

    Ahora con lo del título del artículo donde está el comentario, si no sale por default. buscamos la siguiente linea: var txtWrote = 'wrote:'; y la reemplazamos por esta: var txtWrote = '[user] comento en: &quot;[title]&quot;';

    y nos saldrá el nombre del artículo donde está el comentario, aquí como me quedó:

    gadget tutorial 4.jpg


    Los créditos del dueño del gadget y del tutorial con el cual pude lograrlo:

    Son of the better recent comments gadget

    y del post para ocultar los propios comentarios:

    Hack for my recent comments hack: don't show own comments



  2. #2
    excelente tuto gracias¡¡¡¡

Temas similares

  1. ¿Cómo ocultar mis comentarios del gadget últimos comentarios?
    Recientemente puse un gadget de mostrar los últimos comentarios, pero me gustaría saber si se puede ocultar mis propios comentarios para que solo...
    Respuestas: 4
    Último mensaje: 09-oct-2016
  2. Plugin para últimos comentarios de Facebook en Blogger?
    Hola betas, Tengo puesto los comentarios por facebook en mi blog, y necesito un plugin donde se vean en tiempo real en la página principal de...
    Respuestas: 3
    Último mensaje: 25-jul-2012
  3. Cómo ocultar los comentarios en la versión móvil de Blogger? Tengo Disqus
    En mi blog www.planeta-grandt.com.ar hace años ya tengo el sistema de comentarios de Disqus. El error que surgió cuando Blogger modifico su sistema...
    Respuestas: 2
    Último mensaje: 08-jun-2012
  4. gadget: Ultimos Comentarios
    Saludos! Tengo Un pequeño problema... le quiero añadir un gadget a mi Blog Ociosos de la Red sobre los comentarios recientes, eh buscado algo...
    Respuestas: 2
    Último mensaje: 14-jul-2010
  5. Gadget: "últimos comentarios" no funciona pone: No posts on this blog!
    pues eso, no me funciona ese gadget y no veo solución ni motivo, ademas pone " No posts on this blog!" cuando en el blog si hay post,
    Respuestas: 2
    Último mensaje: 06-jul-2010

Normas de publicación

  • No puedes crear nuevos temas
  • No puedes responder mensajes
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •