Os tutoriais e templates aqui apresentados são voltados para os Modelos de layout (lançados em 2006). A eficácia das dicas aqui apresentadas não foram testadas nos novos modelos de templates do Blogger (2010).
Mostrando postagens com marcador Hacks. Mostrar todas as postagens
Mostrando postagens com marcador Hacks. Mostrar todas as postagens

Blogger e o efeito Lightbox

Efeito Lightbox nativo do Blogger
Ontem um leitor entrou em contato comigo para se queixar que, de uma hora para outra, todas as imagens do seu blog abriam de 'maneira estranha'. Ao verificar o blog, notei que o efeito Lightbox se aplicava à todas elas e que ele não havia colocado nenhum código no template para isso. Uma olhada no código fonte mostrou que o efeito era nativo do Blogger e alguns de vocês já devem ter notado o mesmo em seus blogs: ao clicar nas imagens elas se abrem expandidas sobre um fundo escuro e no rodapé da página aparece miniaturas de todas as imagens do post. Bem, nem eu nem o leitor que me procurou apreciamos o efeito e uma corrida até o Fórum de Ajuda do Blogger (em inglês), mostrou que muitos outros usuários estavam insatisfeitos. Uma coisa é você buscar por um efeito em sua página, outra bem diferente é ele ser imposto e até agora o Blogger não ofereceu nenhuma maneira de desativar o Lightbox (o que eu acredito que irá ocorrer em breve - oremos).

De qualquer maneira, aqui vai um hack para impedir o efeito, desenvolvido por Mark, do blog Code from English Coffe Drinker. Eu testei em alguns dos meus blogs e funcionou perfeitamente.

Copie o código abaixo e cole imediatamente antes da tag </head>:

<script type='text/javascript'>
  //<![CDATA[
function killLightbox() {
 var images = document.getElementsByTagName('img');
 for (var i = 0 ; i < images.length ; ++i) {
  images[i].onmouseover=function() {
   var html = this.parentNode.innerHTML;
   this.parentNode.innerHTML = html;
   this.onmouseover = null;
  };
 }
}

if (window.addEventListener) {
 window.addEventListener('load',killLightbox,undefined);
} else {
 window.attachEvent('onload',killLightbox);
}
//]]>
</script>
Salve a modificação e faça um teste, clicando nas imagens dos seus posts. 
Pelo menos por ora, foi a única solução encontrada.
Leia Mais

Hack Leia Mais Resumo de Postagem

Se você deseja apresentar apenas um resumo de sua postagem com um link do tipo 'Leia Mais...' ou 'Continue Lendo..." em seu blog, siga estes passos:

Vá ao HTML do seu blog e antes da tag < /head >, cole este código:

<b:if cond='data:blog.pageType != "item"'>
<script type="text/javascript">

var fade = false;
function showFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i &lt; spans.length; i++) {
if (spans[i].id == "fullpost") {
if (fade) {
spans[i].style.background = peekaboo_bgcolor;
Effect.Appear(spans[i]);
} else spans[i].style.display = 'inline';
}
if (spans[i].id == "showlink")
spans[i].style.display = 'none';
if (spans[i].id == "hidelink")
spans[i].style.display = 'inline';
}
}


function hideFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i &lt; spans.length; i++) {
if (spans[i].id == "fullpost") {
if (fade) {
spans[i].style.background = peekaboo_bgcolor;
Effect.Fade(spans[i]);
} else spans[i].style.display = 'none';
}
if (spans[i].id == "showlink")
spans[i].style.display = 'inline';
if (spans[i].id == "hidelink")
spans[i].style.display = 'none';
}
post.scrollIntoView(true);
}

function checkFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
var found = 0;
for (var i = 0; i &lt; spans.length; i++) {
if (spans[i].id == "fullpost") {
spans[i].style.display = 'none';
found = 1;
}
if ((spans[i].id == "showlink") &amp;&amp; (found == 0))
spans[i].style.display = 'none';
}
}

</script>
</b:if>

Salve o template. Depois clique em Expandir Modelo de Widget e procure este trecho:

<div class='post-body'>
<p><data:post.body/></p>

Substitua-o por:

<div class='post-body' expr:id='"post-" + data:post.id' >
<b:if cond='data:blog.pageType == "item"'>
<style>#fullpost{display:inline;}</style>
<p><data:post.body/></p>
<b:else/>
<style>#fullpost{display:none;}</style>
<p><data:post.body/></p>
<span id='showlink'>
<a expr:href='data:post.url'>Leia Mais…</a>
</span>
<script type='text/javascript'>
checkFull("post-" + "<data:post.id/>");
</script>
</b:if>

Salve. Agora em em Configurações->Formatação-> e desça a página até ver Modelo de Postagem. Cole alí o seguinte código:

Digite aqui o resumo do post
<span id="fullpost">
Digite aqui o resto do post
</span>

Salve. Toda vez que você iniciar uma postagem este código aparecerá (melhor visualizado no modo HTML da postagem) e basta que você respeite os campos correspondentes para o resumo e o restante da postagem. Se não desejar resumir um determindo post, basta apagar o código.

Este artigo foi completamente refeito em 19 de novembro de 2008, pois o código anterior que aqui se encontrava não funcionava perfeitamente. Ao contrário, este que coloquei agora, funciona 100%. 
Leia Mais

Hack para menu suspenso

Mais um que encontrei no Hackosphere; como transformar os Marcadores num menu suspenso. Para fazer esta mudança, será necessário mexer no código do template, por isso meus queridos, sempre, sempre antes de qualquer modificação, salvem uma cópia de seus templates ou testem antes, em blogs sem conteúdo. Visualizem várias vezes para se certificar de que está tudo ok no template, que não desapareceu nada e só então, salvem as modificações!

Para transformar a lista de Marcadores em um menu suspenso, (óbviamente você deverá primeiro já ter uma lista de Marcadores ativos em seu blog), vá no HTML do seu template, clique em Expandir Modelo de Widget e procure por este trecho do código (utilizem o ctrl+F para facilitar):

<ul>
<b:loop values="'data:labels'" var="'label'">
<li>
<b:if cond="'data:blog.url">
<data:label.name/>
<b:else/>
<a href="'data:label.url'"><data:label.name/></a>
</b:if>
(<data:label.count/>)
</li>
</b:loop>
</ul>

e substitua todo ele por:

<br />
<select onchange='location=this.options[this.selectedIndex].value;'>
<option>Selecione um marcador</option>
<b:loop values='data:labels' var='label'>
<option expr:value='data:label.url'><data:label.name/>
(<data:label.count/>)
</option>
</b:loop>
</select>


Vizualize e estiver do mesmo jeito que ficou meus marcadores aí na Sidebar, salve.

Então, como sou muito xereta, pensei em usar o mesmo hack para lista de links... Às vezes temos listas enormes na sidebar, sejam de parceiros, sejam de amigos, e que acabam ocupando um espaço quilometrico. Pensei que seria muito interessante usar este mesmo recurso para listas de links e como não encontrei nada a respeito no Hackosphere, fiz umas modificações, uns testes e deu certo. Então, para transformar uma lista de links em um menu suspenso, procure por este trecho:

<b:section class='sidebar' id='sidebar' preferred='yes'>
<b:widget id='LinkList1' locked='false' title='' type='LinkList'>
<b:includable id='main'>

<b:if cond='data:title'><h2><data:title/></h2></b:if>
<div class='widget-content'>

<ul>
<b:loop values='data:links' var='link'>
<li><a expr:href='data:link.target'><data:link.name/></a></li>
</b:loop>
</ul>



<b:include name='quickedit'/>
</div>
</b:includable>
</b:widget>

Substitua o que está em vermelho por:

<br />
<select onchange='location=this.options[this.selectedIndex].value;'>
<option>Select a label</option>
<b:loop values='data:links' var='link'>
<option expr:value='data:link.target'><data:link.name/>
</option>
</b:loop>
</select>

Visualize e se a lista de links tiver se tornado um menu suspenso, salve. Onde está Select a label você poderá colocar o título que quiser.

É isso.
Leia Mais

Hacks para IE6 e IE7

Se uma medida fica perfeita no Firefox (por exemplo, a largura de uma coluna) mas desfigura o template no IE6, basta acrescentar underline antes da medida, como no exemplo:

sidebar: 220px; (aqui, medida para o Firefox)
_sidebar: 210px; (aqui, com o acréscimo de underline, será interpretado apenas pelo IE6)

Para que funcione, a medida para o IE6 deve vir logo abaixo da medida para o Firefox.
Mas, este hack não funciona para o Internet Explore 7, então, para que o template fique idêntico nos tres navegadores, devemos fazer assim:

sidebar: 220px; ( medida para o Firefox)
*sidebar: 210px; ( usa-se o asterisco para o IE7)
_sidebar: 210px; (com o acréscimo de underline, será interpretado apenas pelo IE6)

Obs: Deve-se obedecer esta hierarquia para que tudo funcione corretamente: Firefox/IE7/IE6
Leia Mais