News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

Banners diferentes por cada Foro

Started by lucas-ruroken, April 23, 2010, 05:36:17 PM

Previous topic - Next topic

lucas-ruroken

el problema con tu logo es que  es atraves de css.... donce dice (creo) <div id="logo"></div> deberias poner

<div id="logo"><img src="RUTA DE IMAGEN" alt="" /></div>

y en el index.css buscas
#logo

y abajo dice background.... y borrar esa linea de background....
Adk Portal 3.1 is coming....

Design your universe!

distante

Quote from: lucas-ruroken on July 14, 2010, 10:21:37 PM
el problema con tu logo es que  es atraves de css.... donce dice (creo) <div id="logo"></div> deberias poner

<div id="logo"><img src="RUTA DE IMAGEN" alt="" /></div>

y en el index.css buscas
#logo

y abajo dice background.... y borrar esa linea de background....


Realmente dice <div id="logo"/></div>

Ningún problema con eso?  :-\

lucas-ruroken

<div id="logo"/>

reemplazalo por lo que te dije...

<div id="logo"><img src="RUTA DE IMAGEN" alt="" /></div>
Adk Portal 3.1 is coming....

Design your universe!

distante

Oh ya me di cuenta de algo.

Yo no estoy usando el "logo" del theme, cuando adapte el theme a lo que yo quería, puse un logo.png de 1x1 transparente

Y lo que uso en la parte del logo es realmente lo que tengo definido como "top-banner"

Lo tengo así


      <div id="top-banner">


Es la linea 226 del index.template que adjunte.

Podría reemplazar igual <div id="top-banner"> por <div id="top-banner"><img src="RUTA DE IMAGEN" alt="" />

Y eliminar el background de #top-banner en el css?

Me salta la duda porque el  <div id="top-banner"> no tiene a su lado la etiqueta de cierre </div>

::)

U_u no soy muy pesado no?


lucas-ruroken

no, no eres pesado :P

si es cuestino de probar hasta que te quede en link y no en css.
Adk Portal 3.1 is coming....

Design your universe!

distante


distante

#26
Creo que falta detallar algo.

Cuando no estas en el inicio del foro, pero tampoco quieres usar banner distinto, no funciona bien el script

Mira:

www.forosperuanos.net aquí todo bien

Pero en

http://www.forosperuanos.net/cocina-y-reposteria/

No me muestra el background, en el codigo fuente sale que el src esta vacío:

Code ("Codigo fuente visto desde firefox") Select
<div id="top-banner"><img src="" alt="" />


Hice los cambios así:


global $context, $settings, $options, $scripturl, $txt, $modSettings, $logo;
$valid = array(
   79 => 'http://www.forosperuanos.net/Themes/x-mas_20rc2/images/banners/top-papeleras9-79.png',
   9 => 'http://www.forosperuanos.net/Themes/x-mas_20rc2/images/banners/top-papeleras9-79.png',
   26 => 'http://www.forosperuanos.net/Themes/x-mas_20rc2/images/banners/top-sexualidad26.png',
);

if(!empty($context['current_board']))
   $logo = $valid[$context['current_board']];
else
   $logo = 'MIURL/images/custom/top-banner.png';


Creo que falta una parte de código donde diga "si no existe en el array entonces.." o algo así?




Edit!

Luego de mucho rato tratando logre hacer el php necesario y le puse un par de controladores por si alguien quiere activarlo y ver como funciona.

Quedo así

/Si  En board actual devuelve FALSO al empty (es decir si tenemos un ID de subforo) entonces, uso el logo del array
If(!empty($context['current_board']))
{
$logo = $valid[$context['current_board']];
// echo' El primer logo es........................'.$logo.'<br/>';
}
//si el contenido de la variable Logo es menor de 3 caracteres
If (strlen($logo) < "3" )
{
$logo = 'MIURL/images/custom/top-banner.png';
      //  echo' El logo luego de comparativo de vacio es '.$logo.'<br/>';
}


La otra parte

<div id="top-banner"><img src="'.$logo.'" alt="" />

Ahora todo funciona bien, si tengo una imagen hecha para un foro sale esa imagen como aquí:

http://www.forosperuanos.net/sexualidad/
http://www.forosperuanos.net/la-papelera/

Y si no esta definido, usa la imagen por defecto como aquí:

http://www.forosperuanos.net/
http://www.forosperuanos.net/software-y-hardware/

O en cualquier otro subforo!

Lo único malo es que en mi log de errores me bota estos 2  errores

Quote from: Primer Error: Linea 236 Index.Template
8: Undefined variable: logo
==>236:      If (strlen($logo) < "3" )


Cosa que no entiendo porque declaré la variable $logo en los globales!

Quote from: Segundo erro: Linea 232 Index.Template
8: Undefined index: 5
==>232:         $logo = $valid[$context['current_board']];
Este Realmente varia mucho,
Quote8: Undefined index: 5
8: Undefined index: 17
8: Undefined index: 60
y es que es el número que da el 'current_board'

Alguna idea? de como eliminar estos errores? porque mi log se esta llenando demasiado! :P

De paso quizás uno de nuestros gurús de php me pueden ayudar a hacer más liviano ese código, me parece que esta haciendo un poquitoooo lento el foro. :-\

lucas-ruroken

reemplaza

if(!empty($context['current_board']))

por

if(!empty($context['current_board']) && !empty($valid['$context['current_board']))
Adk Portal 3.1 is coming....

Design your universe!

distante

#28
Eso es para eliminar el error del log no?  o_o

Como quedaría el código al final? así?

/Si  En board actual devuelve FALSO al empty (es decir si tenemos un ID de subforo) entonces, uso el logo del array
if(!empty($context['current_board']) && !empty($valid['$context['current_board']))
   {
      $logo = $valid[$context['current_board']];
   //   echo' El primer logo es........................'.$logo.'<br/>';
   }
//si el contenido de la variable Logo es menor de 3 caracteres
   If (strlen($logo) < "3" )
      {
       $logo = 'MIURL/images/custom/top-banner.png';
      //  echo' El logo luego de comparativo de vacio es '.$logo.'<br/>';
      }


o así?


/Si  En board actual devuelve FALSO al empty (es decir si tenemos un ID de subforo) entonces, uso el logo del array
if(!empty($context['current_board']) && !empty($valid['$context['current_board']))
   {
      $logo = $valid[$context['current_board']];
   //   echo' El primer logo es........................'.$logo.'<br/>';
   }
ELSE
      {
       $logo = 'MIURL/images/custom/top-banner.png';
      //  echo' El logo luego de comparativo de vacio es '.$logo.'<br/>';
      }


u.u'

lucas-ruroken

si, con respecto al codigo es liviano, demasiado liviano, no tiene nada que pueda ralentizar el foro.

pero cual es el problema en esto?

Cuando vos pones banners diferentes en cada foro, el navegador tiene que recargar esa imagen, si vos tuvieras un unico banner, esa imagen queda guardada en el cache y entonces se hace mas rapido.

Simplemente por eso, el codigo es muy liviano, no tiene ninguna complicacion
Adk Portal 3.1 is coming....

Design your universe!

distante

ah, si, parece que estaba bajando muchas cosas en la madrugada u.u'

Entonces uso el primero no?

/Si  En board actual devuelve FALSO al empty (es decir si tenemos un ID de subforo) entonces, uso el logo del array
if(!empty($context['current_board']) && !empty($valid['$context['current_board']))
   {
      $logo = $valid[$context['current_board']];
   //   echo' El primer logo es........................'.$logo.'<br/>';
   }
//si el contenido de la variable Logo es menor de 3 caracteres
   If (strlen($logo) < "3" )
      {
       $logo = 'MIURL/images/custom/top-banner.png';
      //  echo' El logo luego de comparativo de vacio es '.$logo.'<br/>';
      }



:) gracias eh
:P deberías hacerlo mod! aunque vi uno por ahí pero no hacia esto ultimo


distante

Tengo un problemilla

con la linea que me diste

if(!empty($context['current_board']) && !empty($valid['$context['current_board']))

No se si tengo que cambiar un ) por un ] y ponerle un ', así:

if(!empty($context['current_board']) && !empty($valid['$context['current_board']]')

O debo quitarle la comilla inicial así:

if(!empty($context['current_board']) && !empty($valid[$context['current_board']))

:-\

lucas-ruroken

if(!empty($context['current_board']) && !empty($valid[$context['current_board']))

asi esta bien, sory

Con lo del mod lo hubiese hecho sin no fuera tan diferente en todos los themes....

dependiendo del theme es completamente diferente, el tuto esta sobre el theme default pero en otros themes como este es completamente diferente.
Adk Portal 3.1 is coming....

Design your universe!

distante

Lo puse así y me boto este error:

Parse error: syntax error, unexpected ')', expecting ']' in index.template.php  on line 230

230 es la linea de ese código u.u

lucas-ruroken

;D

if(!empty($context['current_board']) && !empty($valid[$context['current_board']]))
Adk Portal 3.1 is coming....

Design your universe!

distante

xD !!! malogrando se aprende?

Yaaaa había visto que faltaba el corchete :P

Gracias lucas! ^^

lucas-ruroken

de nada, cualquier duda, aca andaremos
Adk Portal 3.1 is coming....

Design your universe!

zutzu

#37
Estuve viendo y guiándome un poco del CBI, y de esta forma también puede lograrse lo mismo.
paso a colocar lo que hice para los interesados.

Al index.template, se agrega o suplanta este div por el div que contiene su logo.
<div class="logo">';
    if(!empty($context['current_board']) && file_exists($settings['theme_dir'] . '/logos/foro'.$context['current_board'].'.png'))
    echo'<img src="', $settings['theme_url'], '/logos/foro'.$context['current_board'].'.png" alt="' . $context['forum_name'] . '" />';
    else
    echo'<img src="', $settings['theme_url'], '/logos/logo.png" alt="' . $context['forum_name'] . '" />';
    echo'</div>


Solo se crearía la carpeta logos  en la carpeta del tema que usas, y dentro de ella estarían los logos de cada foro.
Al igual como el CBI, cada logo debe tener como nombre foro + el id del foro al que se le cambiar el logo. Ejem:

Tutema/logos/
                     foro1.png
                     foro2.png
                     foro3.png
                     foro4.png
                     foro5.png
                     ETC....
                     logo.png


logo.png se llamara el logo por default que se mostrara en su foro,y que también se mostrara si un foro no tiene logo propio.
claro esta que pueden modificar la extensión,nombre,dirección,la clase,etc.

saludos, y ahí tienen una alternativa mas.


PD. cualquier corrección de los gurus de php, háganlo saber :P

lucas-ruroken

perfecto zutzu, el codigo mas simplificado seria asi:


if(!empty($context['current_board']) && file_exists($settings['theme_dir'] . '/logos/foro'.$context['current_board'].'.png'))
echo'<img src="', $settings['theme_url'], '/logos/foro'.$context['current_board'].'.png" alt="' . $context['forum_name'] . '" />';
else
echo' <img src="', $settings['theme_url'], '/logos/logo.png" alt="' . $context['forum_name'] . '" />';
Adk Portal 3.1 is coming....

Design your universe!

zutzu

Gracias lukas, ya modifique el código simplificado. ;)

Advertisement: