Código, Web y Blogs


El servidor de base de datos no se encuentra [PRESTASHOP] Solución 2024

Al momento de conectar la base de datos de Prestashop en las versiones más recientes en mi caso la 8.1.2 te da el siguiente error:

El servidor de base de datos no se encuentra. Por favor, compruebe los campos de login, contraseña y servidor (DbPDO)

Bueno, te compartiré la solución que me ha funcionado, pero antes una definición gráfica del error mostrado por prestashop:

SOLUCIÓN DEL ERROR

En internet hay múltiples soluciones ya que este error es relativo a su causa, pero asumo que estás escribiendo la misma base de datos, mismo nombre de usuario y misma contraseña sin falla, y aún así cuando tratas de conectar entonces no te deja, recuerda que el prefijo de las tablas de prestashop no se mueve "ps_", entonces:

1. Si lo dicho anteriormente es verdad, y aún no puedes conectar la base de datos vamos a ir a nuestro cpanel > Bases de datos damos click: 

La primera gran falla es que no tengas relacionado un usuario a la base de datos como se ve en la siguiente imagen:


2. Entonces vamos a relacionar un usuario a la base de datos, si bajamos (scroll) un poco dentro de esa misma pestaña habrá algo parecido a lo siguiente escogemos el usuario y la base de datos que vamos a relacionar:


Una vez hecho saldrá los permisos que queremos habilitar PARA ESTE CASO CON PRESTASHOP le daremos que todos están habilitados:


3. Guardamos los cambios, entonces la pestaña (Bases de datos actuales) tendrá relacionado el usuario con todos los permisos completos y se verá así:

Clic para ver más grande

Ahora solo queda ir al instalador de prestashop y continuar el proceso, dando click en conectar la base de datos, si todo sale bien debería salir en verde y poder continuar.

ACLARACIONES

- Si ya tienes un usuario vinculado a la base de datos y el error persiste revisa los permisos dando click sobre el usuario como se ve en la 1ra imagen del pase 3 le das todos los permisos y guardas.

- Recuerda guardar el usuario y contraseña de tu base de datos quizá en algún futuro lo necesites.

- La dirección de la base de datos del servidor por lo general es la misma siempre 127.0.0.1 o "localhost". 


Espero esta información te hubiese servido. Hasta la próxima,






[SOLUCIÓN] "No cuentas con autorización para utilizar este dominio" Activación HTTPS dominio blogger

Varios usuarios en el Foro español/Inglés de blogger a lo largo de estos meses han presentando un problema que aunque tiene solución no todos cuentan con la posibilidad de encontrar o hacer un paso a paso para resolverlo con completa claridad, así la idea es mediante este artículo lograrlo.

 EL PROBLEMA


Cuando los usuarios de blogger tienen y configuran un dominio personalizado (.com .net . co .org etc) por defecto Blogger activa el protocolo http quedando "http://miblog.com" sin embargo por buenas prácticas, SEO, seguridad entre otras variables, muchos al integrar su dominio personalizado quieren que tenga el protocolo https activo siendo así la nueva URL "https://miblog.com" pero al hacerlo en Configuración > HTTPS > Disponibilidad de HTTPS,  arroja el siguiente error:
 

Y al dar en reintentar múltiples ocasiones este error no cambiará, como resultado nunca se activará HTTPS en Blogger.


LA SOLUCIÓN

Implementar la solución no es realmente complicado sin embargo aunque sí funciona con seguridad (Luego de hacer pruebas en 3 dominios personalizados activando HTTPS) puede terminarse el proceso con éxito entre 30 minutos a 2 días en función de la propagación de los registro a implementar en la configuración del dominio, así que:

1. Vamos a Google Search Console allí agregaremos una nueva propiedad de dominio, escogemos la opción de la izquierda "DOMINIO" y en el campo la URL de nuestro blog "miblog.com" y continuar:
 

2. Escogemos "Instrucciones para cualquier proveedor de DNS" y copiamos el código que allí se nos da:
 

3. Este paso puede ser relativo ya que existen cientos de empresas que proveen servicios DNS y de dominio como Godaddy, 1&1, hostgator, Google domains etc. así que la visualización de sus plataformas estilos y demás puede ser distinto pero en principio es el mismo proceso de configuración, se agregará el código que sea copio como un registro TXT quedando algo así para el caso del ejemplo: 
 

4. Una vez hechos los cambios se aconseja esperar unos 5 o 10 minutos, volvemos a Google Search console y damos en "verificar" si se hizo correctamente debería mostrarnos un mensaje de la siguiente manera:
 

5. Ahora vamos a Blogger, habilitaremos nuevamente la opción HTTPS y el error que causaba el origen del problema no debería salir más, pero esto no sería todo aunque se deja habilitar dirá "Estado: Desconocido":
 

 Al cabo de un corto rato un par de minutos por lo general el estado pasa a ser pendiente:
 
6. Finalmente, a partir de este estado se aconseja esperar unos 20 minutos más o en el peor de los casos no perder la paciencia puede tomar hasta día y medio pero el estado debe cambiar a "Disponible":
 

 Con esto si vamos a nuestro blog con "https://miblog.com" debería estar habilitado y cargando con el candadito característico de SSL HTTPS:
 

Con esto se da por terminada la configuración de HTTPS para dominio personalizado en blogger en este tipo de casos con ese tipo de errores, y habremos logrado solucionar el problema.

PD1: Si a la primera no nos carga el blog con HTTPS o da error de algún tipo, borrar cookies caché e historial y esperar máximo 1 hora, si queremos ver el resultado inmediato hay que abrir el blog en otro navegador que no usemos.

PD2: No olvidemos activar la opción redigir a HTTPS por temas de indexación de contenido y similares.

PD3: Implementé esta solución en 3 blogs con dominios .com los cuales quería con HTTPS en blogger por lo cual no considero que falle el método sin embargo si hay alguna dificultad en el proceso podés responder a este hilo en el Foro de Blogger.

Salu2,



Gadget Nieve cayendo blog blogger - Estilo más realista

Un efecto/gadget más para blogger podrás utilizarlo en tu blog se trata de nieve cayendo ya habíamos visto un tutorial hace poco, sin embargo este es completamentedistinto en cuánto a cada copo de nieve que cae.

En el siguien link podrás ver un demo del efecto aplicado sobre un blog de blogger:

¿Entretenido, cierto? para aplicarlo haremos lo siguiente.

1. Iremos a Diseño > Añadir un gadget > HTML/Javascript y allí pegaremos el siguiente código:

<script type="text/javascript">
//<![CDATA[
// Nieve en el blog
/** @license
DHTML Snowstorm! JavaScript-based Snow for web pages
--------------------------------------------------------

Version 1.42.20111120 (Previous rev: 1.41.20101113)

Copyright (c) 2007, Scott Schiller. All rights reserved.
Code provided under the BSD License:
https://schillmania.com/projects/snowstorm/license.txt
*/
var snowStorm=function(e,d){function g(a,d){isNaN(d)&&(d=0);return Math.random()*a+d}function o(){e.setTimeout(function(){a.start(true)},20);a.events.remove(i?d:e,"mousemove",o)}function r(){if(!a.excludeMobile||!s)a.freezeOnBlur?a.events.add(i?d:e,"mousemove",o):o();a.events.remove(e,"load",r)}this.flakesMax=128;this.flakesMaxActive=64;this.animationInterval=40;this.excludeMobile=true;this.flakeBottom=null;this.followMouse=true;this.snowColor="#ffffff";this.snowCharacter="&bull;";this.snowStick=true;
this.targetElement=null;this.useMeltEffect=true;this.usePositionFixed=this.useTwinkleEffect=false;this.freezeOnBlur=true;this.flakeRightOffset=this.flakeLeftOffset=0;this.flakeHeight=this.flakeWidth=8;this.vMaxX=5;this.vMaxY=4;this.zIndex=0;var a=this,y=this,i=navigator.userAgent.match(/msie/i),z=navigator.userAgent.match(/msie 6/i),A=navigator.appVersion.match(/windows 98/i),s=navigator.userAgent.match(/mobile/i),B=i&&d.compatMode==="BackCompat",t=s||B||z,h=null,k=null,j=null,m=null,u=null,v=null,

p=1,n=false,q;a:{try{d.createElement("div").style.opacity="0.5"}catch(C){q=false;break a}q=true}var w=false,x=d.createDocumentFragment();this.timers=[];this.flakes=[];this.active=this.disabled=false;this.meltFrameCount=20;this.meltFrames=[];this.events=function(){function a(b){var b=f.call(b),c=b.length;l?(b[1]="on"+b[1],c>3&&b.pop()):c===3&&b.push(false);return b}function d(a,c){var e=a.shift(),f=[b[c]];if(l)e[f](a[0],a[1]);else e[f].apply(e,a)}var l=!e.addEventListener&&e.attachEvent,f=Array.prototype.slice,
b={add:l?"attachEvent":"addEventListener",remove:l?"detachEvent":"removeEventListener"};return{add:function(){d(a(arguments),"add")},remove:function(){d(a(arguments),"remove")}}}();this.randomizeWind=function(){var c;c=g(a.vMaxX,0.2);u=parseInt(g(2),10)===1?c*-1:c;v=g(a.vMaxY,0.2);if(this.flakes)for(c=0;c<this.flakes.length;c++)this.flakes[c].active&&this.flakes[c].setVelocities()};this.scrollHandler=function(){var c;m=a.flakeBottom?0:parseInt(e.scrollY||d.documentElement.scrollTop||d.body.scrollTop,

10);isNaN(m)&&(m=0);if(!n&&!a.flakeBottom&&a.flakes)for(c=a.flakes.length;c--;)a.flakes[c].active===0&&a.flakes[c].stick()};this.resizeHandler=function(){e.innerWidth||e.innerHeight?(h=e.innerWidth-(!i?16:16)-a.flakeRightOffset,j=a.flakeBottom?a.flakeBottom:e.innerHeight):(h=(d.documentElement.clientWidth||d.body.clientWidth||d.body.scrollWidth)-(!i?8:0)-a.flakeRightOffset,j=a.flakeBottom?a.flakeBottom:d.documentElement.clientHeight||d.body.clientHeight||d.body.scrollHeight);k=parseInt(h/2,10)};this.resizeHandlerAlt=
function(){h=a.targetElement.offsetLeft+a.targetElement.offsetWidth-a.flakeRightOffset;j=a.flakeBottom?a.flakeBottom:a.targetElement.offsetTop+a.targetElement.offsetHeight;k=parseInt(h/2,10)};this.freeze=function(){var c;if(a.disabled)return false;else a.disabled=1;for(c=a.timers.length;c--;)clearInterval(a.timers[c])};this.resume=function(){if(a.disabled)a.disabled=0;else return false;a.timerInit()};this.toggleSnow=function(){a.flakes.length?(a.active=!a.active,a.active?(a.show(),a.resume()):(a.stop(),

a.freeze())):a.start()};this.stop=function(){var c;this.freeze();for(c=this.flakes.length;c--;)this.flakes[c].o.style.display="none";a.events.remove(e,"scroll",a.scrollHandler);a.events.remove(e,"resize",a.resizeHandler);a.freezeOnBlur&&(i?(a.events.remove(d,"focusout",a.freeze),a.events.remove(d,"focusin",a.resume)):(a.events.remove(e,"blur",a.freeze),a.events.remove(e,"focus",a.resume)))};this.show=function(){var a;for(a=this.flakes.length;a--;)this.flakes[a].o.style.display="block"};this.SnowFlake=
function(a,e,l,f){var b=this;this.type=e;this.x=l||parseInt(g(h-20),10);this.y=!isNaN(f)?f:-g(j)-12;this.vY=this.vX=null;this.vAmpTypes=[1,1.2,1.4,1.6,1.8];this.vAmp=this.vAmpTypes[this.type];this.melting=false;this.meltFrameCount=a.meltFrameCount;this.meltFrames=a.meltFrames;this.twinkleFrame=this.meltFrame=0;this.active=1;this.fontSize=10+this.type/5*10;this.o=d.createElement("div");this.o.innerHTML=a.snowCharacter;this.o.style.color=a.snowColor;this.o.style.position=n?"fixed":"absolute";this.o.style.width=
a.flakeWidth+"px";this.o.style.height=a.flakeHeight+"px";this.o.style.fontFamily="arial,verdana";this.o.style.overflow="hidden";this.o.style.fontWeight="normal";this.o.style.zIndex=a.zIndex;x.appendChild(this.o);this.refresh=function(){if(isNaN(b.x)||isNaN(b.y))return false;b.o.style.left=b.x+"px";b.o.style.top=b.y+"px"};this.stick=function(){t||a.targetElement!==d.documentElement&&a.targetElement!==d.body?b.o.style.top=j+m-a.flakeHeight+"px":a.flakeBottom?b.o.style.top=a.flakeBottom+"px":(b.o.style.display=
"none",b.o.style.top="auto",b.o.style.bottom="0px",b.o.style.position="fixed",b.o.style.display="block")};this.vCheck=function(){if(b.vX>=0&&b.vX<0.2)b.vX=0.2;else if(b.vX<0&&b.vX>-0.2)b.vX=-0.2;if(b.vY>=0&&b.vY<0.2)b.vY=0.2};this.move=function(){var d=b.vX*p;b.x+=d;b.y+=b.vY*b.vAmp;if(b.x>=h||h-b.x<a.flakeWidth)b.x=0;else if(d<0&&b.x-a.flakeLeftOffset<-a.flakeWidth)b.x=h-a.flakeWidth-1;b.refresh();if(j+m-b.y<a.flakeHeight)b.active=0,a.snowStick?b.stick():b.recycle();else{if(a.useMeltEffect&&b.active&&
b.type<3&&!b.melting&&Math.random()>0.998)b.melting=true,b.melt();if(a.useTwinkleEffect)if(b.twinkleFrame)b.twinkleFrame--,b.o.style.visibility=b.twinkleFrame&&b.twinkleFrame%2===0?"hidden":"visible";else if(Math.random()>0.9)b.twinkleFrame=parseInt(Math.random()*20,10)}};this.animate=function(){b.move()};this.setVelocities=function(){b.vX=u+g(a.vMaxX*0.12,0.1);b.vY=v+g(a.vMaxY*0.12,0.1)};this.setOpacity=function(a,b){if(!q)return false;a.style.opacity=b};this.melt=function(){!a.useMeltEffect||!b.melting?
b.recycle():b.meltFrame<b.meltFrameCount?(b.meltFrame++,b.setOpacity(b.o,b.meltFrames[b.meltFrame]),b.o.style.fontSize=b.fontSize-b.fontSize*(b.meltFrame/b.meltFrameCount)+"px",b.o.style.lineHeight=a.flakeHeight+2+a.flakeHeight*0.75*(b.meltFrame/b.meltFrameCount)+"px"):b.recycle()};this.recycle=function(){b.o.style.display="none";b.o.style.position=n?"fixed":"absolute";b.o.style.bottom="auto";b.setVelocities();b.vCheck();b.meltFrame=0;b.melting=false;b.setOpacity(b.o,1);b.o.style.padding="0px";b.o.style.margin=
"0px";b.o.style.fontSize=b.fontSize+"px";b.o.style.lineHeight=a.flakeHeight+2+"px";b.o.style.textAlign="center";b.o.style.verticalAlign="baseline";b.x=parseInt(g(h-a.flakeWidth-20),10);b.y=parseInt(g(j)*-1,10)-a.flakeHeight;b.refresh();b.o.style.display="block";b.active=1};this.recycle();this.refresh()};this.snow=function(){for(var c=0,d=0,e=0,f=null,f=a.flakes.length;f--;)a.flakes[f].active===1?(a.flakes[f].move(),c++):a.flakes[f].active===0?d++:e++,a.flakes[f].melting&&a.flakes[f].melt();if(c<a.flakesMaxActive&&
(f=a.flakes[parseInt(g(a.flakes.length),10)],f.active===0))f.melting=true};this.mouseMove=function(c){if(!a.followMouse)return true;c=parseInt(c.clientX,10);c<k?p=-2+c/k*2:(c-=k,p=c/k*2)};this.createSnow=function(c,d){var e;for(e=0;e<c;e++)if(a.flakes[a.flakes.length]=new a.SnowFlake(a,parseInt(g(6),10)),d||e>a.flakesMaxActive)a.flakes[a.flakes.length-1].active=-1;y.targetElement.appendChild(x)};this.timerInit=function(){a.timers=!A?[setInterval(a.snow,a.animationInterval)]:[setInterval(a.snow,a.animationInterval*
3),setInterval(a.snow,a.animationInterval)]};this.init=function(){var c;for(c=0;c<a.meltFrameCount;c++)a.meltFrames.push(1-c/a.meltFrameCount);a.randomizeWind();a.createSnow(a.flakesMax);a.events.add(e,"resize",a.resizeHandler);a.events.add(e,"scroll",a.scrollHandler);a.freezeOnBlur&&(i?(a.events.add(d,"focusout",a.freeze),a.events.add(d,"focusin",a.resume)):(a.events.add(e,"blur",a.freeze),a.events.add(e,"focus",a.resume)));a.resizeHandler();a.scrollHandler();a.followMouse&&a.events.add(i?d:e,"mousemove",
a.mouseMove);a.animationInterval=Math.max(20,a.animationInterval);a.timerInit()};this.start=function(c){if(w){if(c)return true}else w=true;if(typeof a.targetElement==="string"&&(c=a.targetElement,a.targetElement=d.getElementById(c),!a.targetElement))throw Error('Snowstorm: Unable to get targetElement "'+c+'"');if(!a.targetElement)a.targetElement=!i?d.documentElement?d.documentElement:d.body:d.body;if(a.targetElement!==d.documentElement&&a.targetElement!==d.body)a.resizeHandler=a.resizeHandlerAlt;
a.resizeHandler();a.usePositionFixed=a.usePositionFixed&&!t;n=a.usePositionFixed;if(h&&j&&!a.disabled)a.init(),a.active=true};a.events.add(e,"load",r,false);return this}(window,document);
//]]>
</script>

2. Y listo solo queda guardar cambios y verlos en nuestro blog.

Si tienes dudas comenta para ayudarte. 💢💢



Slider horizontal con entradas recientes tipo carrusel Blogger [2024]

01/11/2022: Actualicé los Scripts para que funcionara con Blogger 2024 sin problemas ✅✅
Muchos visitantes del blog me han solicitado que comparta el slider que tengo actualmente en el blog, y por si acaso en un futuro lo llego a quitar dejo una imagen del slider:


¡Listo! Básicamente el Slider como se ve, es horizontal separado por 4 bloques para mostrar las entradas más recientes de forma automática, cada cierto tiempo irá avanzando mostrando todo el contenido fresco de tu blog poco a poco, en lo personal es un slider bastante dinámico y útil ya que no requiere mucho espacio se ve muy bien y su implementación es bastante fácil. ¡El demo lo puedes ver justamente en este blog más arriba!.

¡Colocándolo en tu blog!

1. Lo primero será establecer donde pondremos el slider claramente lo más ideal es ubicarlo arriba de todas las entradas y la sidebar ya que su ancho es superior que el de muchos blogs en blogger (Claro todo depende de la plantilla que tengas).

2. Ahora vamos a Plantilla o tema > Editar HTML > Búscamos el siguiente código ]]> </ b: skin> y justo encima pegamos el siguiente CSS:
#carousel{
margin:auto;
width:898px; /*--Ancho completo del carrusel--*/
height:200px;/*--Alto completo del carrusel--*/
border:1px solid #fff;
position:relative;
display:block;
background:#FFFFFF; /*--Color del fondo del carrusel--*/
}
#carousel .container{
position:absolute;
left:25px;
width:815px;/*--Ancho del carrusel Interior--*/
height:200px;/*--Alto del carrusel Interior--*/
overflow:hidden
}
#carousel #previous_button{
position:absolute;
width:25px;height:200px;background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioFy364tXfycN-f6DAYavDXcC5SmD1bZ-3uCIS5L3QzeotZ1BR4b0_nTZMDxbAaugZemenTtWqOo2aidA3eBL-iftr-sy7lviY3BNXZyzw-ochM9dBxfba7wetLoktHk2yOmEvHasdCpA/s1600/prev.png) center;z-index:100;cursor:pointer;}
#carousel #next_button{position:absolute;right:0;width:25px;height:200px;background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNW-MSrFcgEiIFhgI8pE9AL4l0uGAkFOEKzNWcgO3Dbs2aBhu7PXDjh_9JDJrYv1BGATJemj6uOiODqW_3lUorzLbbIbjuU5PVKokz9E_go18LE1wOchG6tWHFEKvN-DT3X06xzlSpUEs/s1600/next.png) center;z-index:100;cursor:pointer;}
#carousel #next_button:hover,#carousel #previous_button:hover,#carousel ul li:hover{filter:alpha(opacity=80);opacity:.8}
#carousel ul{width:100000px;position:relative;margin-top:10px;}
#carousel ul li{background:#fff ;display:inline;float:left;text-align:center;font-weight:600;line-height:1.1em;width:183px;height:165px;margin:0 1px 10px 12px; padding:6px}
#carousel ul li a.slider_title{color:#242424;display:block;margin-top:-6px;}/*--color texto--*/
#carousel ul li a.slider_title:hover{color:#9B0606;}/*--color texto al pasar cursor--*/

3. Ahora pegaremos justo arriba de </head> el siguiente script que será vital para su correcto funcionamiento (Recomiendo que este código siempre queda de primera por encima de la etiqueta </head>):
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' type='text/javascript'/>

<script type='text/javascript'> //<![CDATA[
(function($){$.fn.jCarouselLite=function(o){o=$.extend({btnPrev:null,btnNext:null,btnGo:null,mouseWheel:false,auto:null,speed:200,easing:null,vertical:false,circular:true,visible:3,start:0,scroll:1,beforeStart:null,afterEnd:null},o||{});return this.each(function(){var running=false,animCss=o.vertical?"top":"left",sizeCss=o.vertical?"height":"width";var div=$(this),ul=$("ul:first",div),tLi=$(".car",ul),tl=tLi.size(),v=o.visible;if(o.circular){ul.prepend(tLi.slice(tl-v-1+1).clone()).append(tLi.slice(0,v).clone());o.start+=v}var li=$(".car",ul),itemLength=li.size(),curr=o.start;div.css("visibility","visible");li.css({overflow:"hidden",float:o.vertical?"none":"left"});ul.css({padding:"0",position:"relative","list-style-type":"none","z-index":"1"});div.css({overflow:"hidden","z-index":"2"});var liSize=o.vertical?height(li):width(li);var ulSize=liSize*itemLength;var divSize=liSize*v;li.css({width:li.width()});ul.css(sizeCss,ulSize+"px").css(animCss,-(curr*liSize));div.css(sizeCss,divSize+"px");if(o.btnPrev)$(o.btnPrev).click(function(){return go(curr-o.scroll)});if(o.btnNext)$(o.btnNext).click(function(){return go(curr+o.scroll)});if(o.btnGo)$.each(o.btnGo,function(i,val){$(val).click(function(){return go(o.circular?o.visible+i:i)})});if(o.mouseWheel&&div.mousewheel)div.mousewheel(function(e,d){return d>0?go(curr-o.scroll):go(curr+o.scroll)});if(o.auto)setInterval(function(){go(curr+o.scroll)},o.auto+o.speed);function vis(){return li.slice(curr).slice(0,v)};function go(to){if(!running){if(o.beforeStart)o.beforeStart.call(this,vis());if(o.circular){if(to<=o.start-v-1){ul.css(animCss,-((itemLength-(v*2))*liSize)+"px");curr=to==o.start-v-1?itemLength-(v*2)-1:itemLength-(v*2)-o.scroll}else if(to>=itemLength-v+1){ul.css(animCss,-((v)*liSize)+"px");curr=to==itemLength-v+1?v+1:v+o.scroll}else curr=to}else{if(to<0||to>itemLength-v)return;else curr=to}running=true;ul.animate(animCss=="left"?{left:-(curr*liSize)}:{top:-(curr*liSize)},o.speed,o.easing,function(){if(o.afterEnd)o.afterEnd.call(this,vis());running=false});if(!o.circular){$(o.btnPrev+","+o.btnNext).removeClass("disabled");$((curr-o.scroll<0&&o.btnPrev)||(curr+o.scroll>itemLength-v&&o.btnNext)||[]).addClass("disabled")}}return false}})};function css(el,prop){return parseInt($.css(el[0],prop))||0};function width(el){return el[0].offsetWidth+css(el,'marginLeft')+css(el,'marginRight')};function height(el){return el[0].offsetHeight+css(el,'marginTop')+css(el,'marginBottom')}})(jQuery); //]]></script>

<script type='text/javascript'> //<![CDATA[
imgr=new Array();imgr[0]="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidGg7QpJQUADcXy1YppR3uED_IAjvtfcnd96qgOaVVfrCCq5oqDQ2uQo4aHkpfa40ItJZf_8yBswQwFDapl93TbXyOSMgQvwVZBSzQYmbKc_3wU7NKYalxbNtqFeNwC86hyphenhyphenNLZ69rcaWA/s1600/no+image.jpg";showRandomImg=true;aBold=true;summaryPost=140;summaryTitle=25;numposts1=15;function removeHtmlTag(strx,chop){var s=strx.split("<");for(var i=0;i<s.length;i++){if(s[i].indexOf(">")!=-1){s[i]=s[i].substring(s[i].indexOf(">")+1,s[i].length)}}s=s.join("");s=s.substring(0,chop-1);return s}function showrecentposts(json){j=(showRandomImg)?Math.floor((imgr.length+1)*Math.random()):0;img=new Array();document.write('<ul>');for(var i=0;i<numposts1;i++){var entry=json.feed.entry[i];var posttitle=entry.title.$t;var pcm;var posturl;if(i==json.feed.entry.length)break;for(var k=0;k<entry.link.length;k++){if(entry.link[k].rel=='alternate'){posturl=entry.link[k].href;break}}for(var k=0;k<entry.link.length;k++){if(entry.link[k].rel=='replies'&&entry.link[k].type=='text/html'){pcm=entry.link[k].title.split(" ")[0];break}}if("content"in entry){var postcontent=entry.content.$t}else if("summary"in entry){var postcontent=entry.summary.$t}else var postcontent="";postdate=entry.published.$t;if(j>imgr.length-1)j=0;img[i]=imgr[j];s=postcontent;a=s.indexOf("<img");b=s.indexOf("src=\"",a);c=s.indexOf("\"",b+5);d=s.substr(b+5,c-b-5);if((a!=-1)&&(b!=-1)&&(c!=-1)&&(d!=""))img[i]=d;var month=[1,2,3,4,5,6,7,8,9,10,11,12];var month2=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];var day=postdate.split("-")[2].substring(0,2);var m=postdate.split("-")[1];var y=postdate.split("-")[0];for(var u2=0;u2<month.length;u2++){if(parseInt(m)==month[u2]){m=month2[u2];break}}var daystr=day+' '+m+' '+y;var trtd='<li class="car"><div class="thumb"><a href="'+posturl+'"><img width="183" height="120" class="alignnone" src="'+img[i]+'"/></a></div><p><a class="slider_title" href="'+posturl+'">'+posttitle+'</a></p></li>';document.write(trtd);j++}document.write('</ul>')} //]]></script>

4. Finalmente el código que tendrá la estructura HTML de nuestro Slider carrusel horizontal una idea sería buscar en la plantilla de tu blog el siguiente código <div id='main-wrapper'> y justo encima pegar esto:

NOTA: si no te sale el código a buscar del paso 4 procura agregar todo como un gadget HTML y ponlo arriba de las entradas en diseño a ver que tal.
<div id='carousel'>
<div id='previous_button'/>
<div class='container'>
<script>
document.write(&quot; &lt;script src=\&quot;/feeds/posts/default?max-results=&quot;+numposts1+&quot;&amp;orderby=published&amp;alt=json-in-script&amp;callback=showrecentposts\&quot;&gt;&lt;\/script&gt;&quot;);
</script>
<div class='clear'/>
</div>
<div id='next_button'/>
</div>
<script type='text/javascript'>
(function($) { $(document).ready(function(){
$(&quot;#carousel .container&quot;).jCarouselLite({
auto:4000,
scroll: 1,
speed: 800,
visible: 4,
start: 0,
circular: true,
btnPrev: &quot;#previous_button&quot;,
btnNext: &quot;#next_button&quot;
});
})})(jQuery)
</script>

5. Guarda cambios y observa la magia.
    

- Lo que tenemos en color azul, son los comentarios de los parámetros CSS para retocar el slider cada uno es claro.

- En color rojo tenemos el script de Jquery, si ya estás usando Jquery en tu blog recuerda eliminar esta línea por otra parte recuerda que puedes sustituir por la versión más actual para ello puedes guiarte por este post.  

No es más por este post recuerda que si surge la duda puedes comentar, hasta la próxima ;) 


Efecto "Nieve cayendo" en blog de blogger Navidad 2024

 En este post aprenderás a poner el efecto de nieve cayendo en tu blog de blogger es en extremo fácil y bastará algunos cuántos clics y listo así que sin más empecemos con este corto tutorial.


A continuación podrás ver un demo:

¿Divertido verdad? bueno el paso a paso para agregarlo es el siguiente:

1. Copia el siguiente código completo:

<script type='text/javascript'>
var fallObjects=new Array();function newObject(url,height,width){fallObjects[fallObjects.length]=new Array(url,height,width);}

var numObjs=20, waft=50, fallSpeed=10, wind=0;
newObject("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMjxx1DcRUiTQ-xUyEoa6oRhWM3a33w1G3w-s_O8Q54c-vTYfjSuN7VLzI7eNyCZqLcfp_71ws0XW61FkYp5jgPx5P_4Jsiu_sSW_BcQPAyozsL1ObhGlCYGwXe9qcY2fUcmaZIEA2fHEC/s400/nieve2_jessi_diyva.png",22,22);
newObject("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoZvm_FQO1LDolYeuWWK59_jNn8pOxqtqKpiQCEVJQjzivPcxU6_BO6AWiidwgstZZtEz-Ur0LcYHYMAYxZHcADLMa-BaQKut3mat4lyZvZ9gzuw6Ll47PfUweaLF76Ahzz_y0vqeYDjMu/s400/nieve1_jessi_diyva.png",22,22);

function winSize(){winWidth=(moz)?window.innerWidth-180:document.body.clientWidth-180;winHeight=(moz)?window.innerHeight+500:document.body.clientHeight+500;}
function winOfy(){winOffset=(moz)?window.pageYOffset:document.body.scrollTop;}
function fallObject(num,vari,nu){
objects[num]=new Array(parseInt(Math.random()*(winWidth-waft)),-30,(parseInt(Math.random()*waft))*((Math.random()>0.5)?1:-1),0.02+Math.random()/20,0,1+parseInt(Math.random()*fallSpeed),vari,fallObjects[vari][1],fallObjects[vari][2]);
if(nu==1){document.write('<img id="fO'+i+'" style="position:fixed;" src="'+fallObjects[vari][0]+'">'); }
}
function fall(){
for(i=0;i<numObjs;i++){
var fallingObject=document.getElementById('fO'+i);
if((objects[i][1]>(winHeight-(objects[i][5]+objects[i][7])))||(objects[i][0]>(winWidth-(objects[i][2]+objects[i][8])))){fallObject(i,objects[i][6],0);}
objects[i][0]+=wind;objects[i][1]+=objects[i][5];objects[i][4]+=objects[i][3];
with(fallingObject.style){ top=objects[i][1]+winOffset+'px';left=objects[i][0]+(objects[i][2]*Math.cos(objects[i][4]))+'px';}
}
setTimeout("fall()",31);
}
var objects=new Array(),winOffset=0,winHeight,winWidth,togvis,moz=(document.getElementById&&!document.all)?1:0;winSize();
for (i=0;i<numObjs;i++){fallObject(i,parseInt(Math.random()*fallObjects.length),1);}
fall();
</script>

2. En blogger irás a Diseño > Añadir un gadget:

Pegas el código guardas y listo visualiza si el efecto funciona en tu blog.

¡Fácil! Es todo en este tutorial. ✊



Lunar plantilla Blogger responsive con modo noche / oscuro 2024 gratis

Navegando por tierras desconocidas me topé con una plantilla para Blogger muy bonita y muy atractiva con la funcionalidad de modo noche / oscuro que al menos de forma nativa no he visto implementada en un tema y desde luego que trabaje tan bien, así que bueno aquí compartiré un poco de la plantilla y la opción para que la puedan descargar gratis.



                                                                Demo  ||  Descargar



Para activar el modo noche en el demo o cuando cargues la plantilla a tu blog en la parte superior derecho activa la opción que dice "Night Mode" además agrego que la plantilla ha sido creada por Arlina dzgn y naminakiky según parece. 

 RESPONDIENDO DUDAS SOBRE LA PLANTILLA:

1. ¿Cómo coloco el gadget de seguidores de blogger o archivo del blog?

Primero debes entender que la plantilla trabaja a una solo columna es decir su diseño esconde la sidebar y los elementos que pongas allí desaparecerán, todo lo que se señalado a la derecha llamado "sidebarright" no se verá por más que lo pongas:

Ahora si quieres visualiza algún gadget deberás mover el de seguidores por ejemplo encima o debajo del bloque de entradas llamado "mainblogger" quedando así: 


Como se ve en la anterior imagen es como en la pestaña diseño de tu blog debe quedar sea arriba del bloque "Entradas del blog" o debajo, ahora si visualizamos en vivo nuestro blog se verá así y el o los gadgets ya está visible para todos:

Gadget de seguidores visible en las entradas



¿Alguna duda? comenta. 💬


Prestashop 1.7 - SOLUCIÓN "se ha producido un error al enviar el mensaje" 2024

Si tienes Prestashop 1.7 o actualizaste hace poco puede pasarte que al enviar correos de cambio de estado de pedido, formulario de contacto o un cliente quiere recuperar su contraseña arroje el siguiente error:

Se ha producido un error al enviar un correo electrónico al cliente.

Y es que solucionar esto lo más pronto es importante pues no podremos obtener y dar ninguna notificación desde prestashop a nuestro clientes así que vamos con el paso a paso si este es tu caso.

SOLUCIÓN AL PROBLEMA

1. Vamos a probar que pasa, vamos entonces al backoffice prestashop luego, Parámetros avanzados > Dirección de correo electrónico, allí baja al final de esa configuración e intenta enviar un correo de prueba si te bota el siguiente error, entonces continua con el paso a paso:

Si el error es el mismo entonces vamos a crear un nuevo correo electrónico directamente desde cpanel para ello ve al cpanel de tu dominio con tu proveedor de hosting y en donde se ve señalado daremos click:

2. Damos en +crear para el nuevo correo:

Asignamos un nombre al correo el que se quiera poner, en mi caso lo dejaré como "hola" y el dominio, luego una contraseña y establece en configuraciones adicional un almacenamiento de 1024 MB:

Damos en crear una vez más y habrá quedado listo el nuevo correo, ahora vamos a desplegar los detalles de ese nuevo correo electrónico dando clic en "Connect device": 


 Una vez dentro la información que te dejo señalada en amarillo es la que necesitaremos en el paso 4, esta la info que necesitaremos:

3. Ahora necesitaremos instalar el siguiente módulo llamada "ps_mailalerts" da click aquí para descargarlo, o bien puedes ir directamente al repositorio de GitHub y obtenerlo también eres libre de decidir, una vez descargado en el backoffice de prestashop vamos a subir el modulo en formato .zip aquí:

 Una vez cargado el módulo le damos en configurar:

Allí la configuración que hay por defecto no la tocaremos y solo al final pondremos el correo que hemos creado en cpanel hace unos pasos atrás:

4. Una vez guardados los cambios del paso anterior, vamos nuevamente por Parámetros avanzados > Dirección de correo electrónico, bajamos un poco y seleccionamos las siguientes opciones tal cual:

Más abajo veremos un formulario el cual debemos llenar con los datos que obtuvimos en la última imagen del cpanel al crear el correo del paso 2:


Debes copiarlo tal cual te salió a ti el cifrado y el puerto también.

5. Finalmente guardamos los cambios de la modificación anterior, y volvemos a probar a enviar un correo de pruebas en el mismo apartado mostrado anteriormente si todo está bien debería verse un mensaje como el que se ve a continuación:

Si revisamos ese correo de pruebas hecho en gmail debería estar el correo que prestashop envió por lo cual el problema está solucionado y ahora todos nuestros clientes recibirán sus correos:


 Y eso sería todo el proceso detallado paso a paso, recuerda que si tienes alguuna duda puedes comentar el post.

Hasta la próxima, 👈









ESTAMOS EN: