Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[Truco] Barra Flotante que invita a registrarse
#1
Esta muy de moda en otros sistemas de foros un Mod que crea una barra flotante que invita a registrarse en el foro. He logrado implementar un "scrip" que encontré en Dynamicdrive.com en nuestro querido SMF.

El Scrip original se encuentra aca.

Esta implementación la he realizado en el theme default, pero es totalmente posible de hacer en otros themes, quizas haciendo alguna pequeña modificación.

Empecemos:

1.- Editar el archivo index.template.php

Buscar:
Código:
// ]]></script>
</head>

Reemplazar por:
Código:
// ]]></script>';
   // Barra Flotante
   echo '
<script type="text/javascript">

/***********************************************
* Floating Top Bar script- Dynamic Drive (www.dynamicdrive.com)
* Sliding routine by Roy Whittle (http://www.javascript-fx.com/)
* This notice must stay intact for legal use.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

var persistclose=0 //set to 0 or 1. 1 means once the bar is manually closed, it will remain closed for browser session
var startX = 30 //set x offset of bar in pixels
var startY = 40 //set y offset of bar in pixels
var verticalpos="frombottom" //enter "fromtop" or "frombottom"

function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}

function closebar(){
if (persistclose)
document.cookie="remainclosed=1"
document.getElementById("topbar").style.visibility="hidden"
}

function staticbar(){
   barheight=document.getElementById("topbar").offsetHeight
   var ns = (navigator.appName.indexOf("Netscape") != -1) || window.opera;
   var d = document;
   function ml(id){
      var el=d.getElementById(id);
      if (!persistclose || persistclose && get_cookie("remainclosed")=="")
      el.style.visibility="visible"
      if(d.layers)el.style=el;
      el.sP=function(x,y){this.style.left=x+"px";this.style.top=y+"px";};
      el.x = startX;
      if (verticalpos=="fromtop")
      el.y = startY;
      else{
      el.y = ns ? pageYOffset + innerHeight : iecompattest().scrollTop + iecompattest().clientHeight;
      el.y -= startY;
      }
      return el;
   }
   window.stayTopLeft=function(){
      if (verticalpos=="fromtop"){
      var pY = ns ? pageYOffset : iecompattest().scrollTop;
      ftlObj.y += (pY + startY - ftlObj.y)/8;
      }
      else{
      var pY = ns ? pageYOffset + innerHeight - barheight: iecompattest().scrollTop + iecompattest().clientHeight - barheight;
      ftlObj.y += (pY - startY - ftlObj.y)/8;
      }
      ftlObj.sP(ftlObj.x, ftlObj.y);
      setTimeout("stayTopLeft()", 10);
   }
   ftlObj = ml("topbar");
   stayTopLeft();
}

if (window.addEventListener)
window.addEventListener("load", staticbar, false)
else if (window.attachEvent)
window.attachEvent("onload", staticbar)
else if (document.getElementById)
window.onload=staticbar
</script>';  

   echo '        
</head>

Si se fijan, al principio encontraran la siguientes lineas:

Cita:var persistclose=0 //set to 0 or 1. 1 means once the bar is manually closed, it will remain closed for browser session
var startX = 30 //set x offset of bar in pixels
var startY = 40 //set y offset of bar in pixels
var verticalpos="frombottom" //enter "fromtop" or "frombottom"
las cuales pueden cambiar, para configurar el scrip a su gusto la distancia desde el eje X, y desde el eje Y, ademas si quieren que la barra se ubique arriba(fromtop) o abajo(frombottom).

Luego buscar:
Código:
<body>';

y reemplazar por:
Código:
<body>';
   if ($context['user']['is_guest'])
   {
   echo '
<div id="topbar">
<a href="" onClick="closebar(); return false"><img src="', $settings['images_url'], '/close.gif" border="0" /></a>
Bienvenido(a), Visitante. Por favor, <a href="', $scripturl, '?action=login"><b>ingresa</b></a> o <a href="', $scripturl, '?action=register"><b>regístrate</b></a>.

</div>';
   }
aqui es donde pueden usar HTML para dejar la barra mas bonita, y no tan simple como es este ejemplo.

2.- Editar el archivo style.css

agregar al final:
Código:
#topbar{
position:absolute;
border: 1px solid black;
padding: 2px;
background-color: lightyellow;
width: 450px;
visibility: hidden;
z-index: 100;
}

aqui tambien se pueden hacer modificaciones para hacer más atractiva la barra, por ejemplo agregar una imagen de fondo, determinar una altura fija, cambiar colores, etc.

3.- Subir el archivo close.gif a la carpeta "images" del theme: [Imagen: closeie9.gif]

Eso es todo.

la barra desaparece al estar "logueado" en el foro.

Les recuerdo que corre por cuenta de ustedes hacer mas atractiva esta barra, usando html y css se pueden lograr cosas bastantes bonitas.

Espero sus comentaios. Saludos!!!
#2
Muy interesante, aunque posiblemente para los que no tengan foro les sirva para agregarse al boletin o indexarce a otra página, según las necesidades de cada persona... Rolleyes




SI TE LLAMA LA ATENCION UNA ESTRELLA... SIGUELA,
SI TE CONDUCE AL PANTANO... YA SALDRAS DE EL.
PERO SI NO LA SIGUES... TODA LA VIDA,
PENSARAS QUE ESA ERA TU ESTRELLA.




WWW


Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Mod Actualizado 2016 Barra de Actividad jhoancito123 6 618 22-04-2016, 03:20 PM
Último mensaje: jhoancito123
  [Truco] Soporte enlaces ED2K lukas 0 419 28-05-2013, 09:46 PM
Último mensaje: lukas
  [Truco] Boton BBC para "Hide Tag" lukas 0 463 28-05-2013, 09:36 PM
Último mensaje: lukas



Usuarios navegando en este tema: 1 invitado(s)