jueves, 14 de octubre de 2010

Filled Under: ,

Sumarios automáticos. Casi definitivo. – Auto – Motor – Record

Desde hace aproximadamente un año, Blogger incorpora unsistema para crear sumarios de entradas (leer más;read more), de manera que podamos mostrarlas truncadas a discreción. Personalmente nunca me ha gustado el sistema, porque si bien permitía realizar el corte en el punto exacto deseado, también obligaba a meter código extra post a post. Principalmente por este motivo, siempre he preferido lossumarios automáticos.

Sin embargo, este último sistema tiene unas cuantas carencias:
  • las entradas que sólo contenían una imagen o muy poco texto se quedan cojas con respecto a otras más extensas.
  • las imágenes en miniatura se mostraban deformadas si las originales no eran cuadradas.
  • en las páginas estáticas, las entradas se truncaban indebidamente
Estas y alguna cosilla extra más, son las que he pretendido solucionar con este nuevo código.

Ahora secomprobará la longitud del texto de la entrada y si es menor que el que queremos mostrar en los sumarios, simplementeno truncará la entrada y la mostrará completa. Asimismo si el post tiene sólo imágenes.

Por otra parte, en lugar de forzar el tamaño de la imagen que acompaña los resúmenes, lo que haremos serámostrar un recorte si la original es mayor que el recuadro que fijemos para los sumarioso un mosaico si es más pequeña. Y en ambos caso, la imagen tambiénenlazará con el post.

Y ya que estábamos, también se aportan tres estilos (CSS) para elegir el que más os guste. Uno para situar la miniatura flotando con el texto (derecha o izquierda), otro para mostrar una imagen grande en la cabecera del resumen y un tercero para no mostrar imagen alguna.

Aunque un poco largos, sólo tenemos que generar dos trozos de código para que todo funcione. Seleccionamos la casillaExpandir plantillas de artilugios y en primer lugar insertamos el estilo y el script antes de/head. Si ya estábamos usando este truco, antes de nada tendremos que eliminar el código del anterior script. Es fácil reconocerlo porque es muy similar. Este es el nuevo que se propone:


!-- SUMARIOS AUTOMATICOS --
style type='text/css'
.contemini {
position:relative;
width:125px;
height:125px;
float:right;
overflow:hidden;
margin:0px 0px 0px 10px;
border:1px solid #aaaaaa;
-webkit-box-shadow: 2px 2px 5px ;
-moz-box-shadow: 2px 2px 5px ;
box-shadow: 2px 2px 5px ;
background:#000000;
}
.miniaturas {
width:125px;
height:125px;
background: no-repeat scroll 50% 40% #eeeeee;
}
.leermas {
/* Las propiedades que gusteis para el enlace */
}
/style

script type='text/javascript'
//![CDATA[

function createSummaryAndThumb(pID,enlacetitulo){
var div = document.getElementById(pID);
var imgtag = "";
var img = div.getElementsByTagName("img");
var summ = sumario_noimg;

if(img.length=1) {
imgtag = 'div class="contemini"a href="' + enlacetitulo + '"div class="miniaturas" style="background-image:url(' + img[0].src + ')"/a/div/div';
summ = sumario_img;
}

var summary = removeHtmlTag(div.innerHTML,summ,imgtag,enlacetitulo);
div.innerHTML = summary;
}

function removeHtmlTag(strx,chop,imagen,enlace){
var original=strx;
if(strx.indexOf("")!=-1) {
var s = strx.split("");
for(var i=0;is.length;i++){
if(s[i].indexOf("")!=-1){
s[i] = s[i].substring(s[i].indexOf("")+1,s[i].length);
}
}
strx = s.join("");
}
if(strx.length=chop) {
return original;
}
else {
chop = (chop strx.length-1) ? chop : strx.length-2;
while(strx.charAt(chop-1)!=' ' && strx.indexOf(' ',chop)!=-1) chop++;
strx = strx.substring(0,chop-1);
var devolver = imagen + 'div' + strx + '... (a class="leermas" href="' + enlace+ '"Leer más/a)/div';
return devolver;
}
}

sumario_noimg = 380;
sumario_img = 255;
//
/script


Ahora, para que lo de los enlaces en las imágenes funcione y que no nos den la tabarra las páginas estáticas, localizamosdata:post.body/ y sustituimos esa variables por lo siguiente. Si teníamos otro código distinto para sumarios, lo sustituimos igual que antes.


b:if cond='data:blog.pageType == "item"'
data:post.body/
b:else/
b:if cond='data:blog.pageType == "static_page"'
data:post.body/
b:else/
div expr:id='"summary-" + data:post.id'data:post.body//div
script type='text/javascript'createSummaryAndThumb("summary-data:post.id/","data:post.url/");/script
/b:if
/b:if


Ya podemos pinchar enVista Previa y comprobar que todo funciona correctamente. Si estais en un blog de prueba (que es lo que deberíais hacer antes de meter nada nuevo en vuestro blog), a continuación podeis crear algunos postsextremos para ver el resultado: uno con poco texto, otro con poco texto y una imagen, una imagen sola...

¿Contentos con el sistema? Pues ahora las posibles configuraciones alternativas de estilo.

En la primera parte del primer código teneis todas las propiedades CSS. El alto y el ancho puede ser cambiado para aumentar/disminuir el tamaño de las miniaturas y sólo hay que tener en cuenta que hay que hacerlo simultáneamente en las dos clases(.contemini,.miniaturas). También podeis cambiar los efectos de bordes y sombras (border,box-shadow), así como el fondo por defecto. Evidentemente, elfloat:right; podría ser unfloat:left; sin problemas; sólo habria que ajustar elmargin para que se generará el espaciado con el texto en el lado contrario.

Si ya nos metemos en la parte del script, encontramos el texto "(Leer más)", que podemos cambiarlo por el que más nos guste. Al final del todo encontramos las variables que controlan el número de caracteres que queremos que se vean en los sumarios:sumario_noimg es para los posts sin imágenes (más caracteres) ysumario_img para el otro caso (con miniatura, menos caracteres).

Si quereis mostrar una gran imagen central (cuando la haya) encima del resumen de texto, entonces teneis que cambiar todo lo que está entre etiquetasSTYLE por esto otro:


.contemini {
position:relative;
width:400px;
height:200px;
text-align:center;
margin:0px auto 10px;
overflow:hidden;
border:1px solid #aaaaaa;
-webkit-box-shadow: 2px 2px 5px ;
-moz-box-shadow: 2px 2px 5px ;
box-shadow: 2px 2px 5px ;
background:#000000;
}

.miniaturas {
width:400px;
height:200px;
background: 50% 50%;
/*Para que la imagen no se repita si es pequeña, incluir un no-repeat*/
}

.leermas {
/* Las propiedades que gusteis para el enlace */
}

Una vez más, podeis cambiar el tamaño de la miniatura y el resto de propiedadesvisuales.

Y para terminar, el estilo más fácil que es el que no mostrará ninguna miniatura en las entradas a resumir:


.contemini {
display:none;
}

.miniaturas {
}

.leermas {
/* Las propiedades que gusteis para el enlace */
}

Seguro que este último es el más os ha gustado ;)

car insurance quotes colorado Car insurance quotes Utah HOME PHONE INTERNET BUNDLE personal injury lawyer sarasota fl Donate old cars to charity Online casino Service business software refinance with poor credit Php programmers LIFE INSURANCE CO LINCOLN Learning adobe illustrator personal injury solicitor ASBESTOS LAWYERS online motor insurance quotes what is structured settlement mesothelioma Social media strategies Virtual Data Rooms workers compensation lawyer los angeles Motor Replacements selling my structured settlement Asbestos Lung Cancer DONATE CARS IN MA Personal Injury Lawyers best mesothelioma lawyers dallas mesothelioma attorneys cheap domain registration hosting mesothelioma help Casino CAR INSURANCE QUOTES PA Donate Car for Tax Credit Seo services uk homeowner loans Mobile casino Hire php developer Forensics Online Course CHEAP CAR INSURANCE IN VIRGINIA cash out structured settlement google adsense cheaper insurance companies Make money online Australia Casino reviews Paperport Promotional Code Dedicated Hosting Dedicated Server Hosting Live casino los angeles motorcycle accident lawyer injury lawyers car insurance in south dakota DONATE YOUR CAR FOR MONEY Business management software structured settlement buyers PHD IN COUNSELING EDUCATION asterisk call center software DUI lawyer st louis mesothelioma attorney Hire php developers Hire php programmers Cheap Car Insurance in Virginia CAR INSURANCE IN SOUTH DAKOTA Dwi lawyer Criminal lawyer Met Auto Computer science classes online Business finance group adverse credit remortgage Seo companies mesothelioma law suit motorcycle lawyer los angeles annuity payment accident attorney orange county Nunavut culture WebEx costs Dallas Mesothelioma Attorneys BEST CRIMINAL LAWYER IN ARIZONA miami personal injury lawyer Car Insurance Quotes Utah boulder personal injury lawyers Annuity Settlements Automobile Accident Attorney DONATE OLD CARS TO CHARITY Donating used cars to charity Hard drive data recovery services Massage School Dallas Texas mesothelioma survival rates Criminal defense lawyer Php programmers for hire Personal Injury Lawyer Custom Christmas cards WORLD TRADE CENTER FOOTAGE WordPress hosting accident attorney san bernardino Cheap Auto Insurance in VA Donate Your Car Sacramento Bankruptcy lawyer Cheap Domain Registration Hosting Massage school Dallas Texas Car Accident Lawyers selling a structured settlement Psd to html forensics online course Met auto Photo Christmas cards Best social media platforms for business Paperport promotional code New social media platforms Life insurance co Lincoln car crash attorneys Car Insurance Quotes Colorado MASSAGE SCHOOL DALLAS TEXAS houston motorcycle accident lawyer quotes car cheap auto insurance in va Social media platforms for business Custom WordPress theme designer Best Seo company colorado auto accident attorney personal injury accident lawyer Best social media platforms Seo company Online Christmas cards Adobe illustrator classes buying an annuity calculator WordPress themes for designers phd in counseling education structured settlement quote Health Records Personal Health Record Psd to WordPress email bulk service federal criminal defense attorney Social media examiner Social media management baltimore mesothelioma attorneys Tech school Register free domains virtual data rooms Structures Annuity Settlement Donating Used Cars to Charity HARDDRIVE DATA RECOVERY SERVICES Donate cars in ma Car insurance quotes pa Html email Social media platforms Christmas cards business administration masters Proud Italian cook Auto Mobile Shipping Quote Better Conference Calls AUTOMOBILE ACCIDENT ATTORNEY personal accident attorney Car Donate Cheap car insurance in Virginia Italian cooking school Hard drive Data Recovery Services World Trade Center Footage WordPress theme designers CAR DONATE Donate Cars Illinois Nunavut Culture structured settlement brokers sell annuity payment auto accident attorney Torrance Donate cars Illinois sell structured settlement calculator Online Motor Insurance Quotes Social media campaigns asbestos lawyers Social media tools mesothelioma attorneys california Car insurance quotes Colorado Mesothelioma Law Firm Donate Car to Charity California Online Classes mesothelioma claim Car insurance in South Dakota Donate Cars in MA PHD on Counseling Education How to Donate A Car in California Best Criminal Lawyers in Arizona Best criminal lawyer in Arizona Sell Annuity Payment STRUCTURED ANNUITY SETTLEMENT Donate Your Car for Kids Asbestos Lawyers Attorney home phone internet bundle Low Credit Line Credit Cards personal injury attorney ocala fl car insurance quotes mn life insurance quotes asbestos mesothelioma lawsuit mesothelioma lawyer houston hosted predictive dialers Dayton Freight Lines Donate a Car in Maryland bus accident attorney los angeles Mortgage Adviser cash out annuity HOW TO DONATE A CAR IN CALIFORNIA asbestos exposure lawyers Donating a Car in Maryland Online classes Psychic for Free Criminal Defense Attorneys Florida motor replacements mesothelioma lawyers san diego ONLINECLASSES hughes net business CHEAP DOMAIN REGISTRATION HOSTING Life Insurance Co Lincoln Holland Michigan College