MOD EMPAQUETADO , CON ALGUNAS MODIFICACIONES Y MANEJO DE LA ADMINISTRACION:Floating Bar Mod / Mod de Barra Flotante
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 en:
http://www.dynamicdrive.com/dynamicindex17/floatbar.htmEsta 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.
¿Como hacerlo?
1.- Editar el archivo index.template.php
Buscar:
// ]]></script>
</head>Reemplazar por:
// ]]></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:
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:
<body>';y reemplazar por:
<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:
#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.

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.
Saludos