Página 1 de 1

Añadir un botón que cambie una imagen del foro por otra  Tema Solucionado

Publicado: 18 Mar 2011, 19:48
por Orzak
Hola compañeros.

Pues bien, tengo una gran duda sobre un elemento de mi foro. Resulta que tengo una radio online, y quiero que se sepa si ésta está encendida por una imagen roja (apagada) o verde(encendida). El icono está en la barra de botones del foro, donde aparece portal, foro, registrarse, etc...

Lo que me gustaría saber es la manera de poder intercambiar el botón rojo por el verde desde alguna parte del foro, o simplemente entrando en una URL. Sería modificar una parte del overall_header con por ejemplo "/images/bolaverde.gif".

Si no, tendría que hacerlo a mano, descargar la plantilla del overall_header, cambiar la URL de la imagen y subirlo de nuevo al servidor, y como comprenderéis es algo tedioso.


Un saludo, aquí tenéis el foro para que veáis que es lo que estoy preguntando http://www.guitarinfo.es

Re: Añadir un botón que cambie una imagen del foro por otra

Publicado: 20 Mar 2011, 13:03
por Orzak
Up.

¿Me he explicado mal? :S

Re: Añadir un botón que cambie una imagen del foro por otra

Publicado: 20 Mar 2011, 14:42
por Alorse
No te has explicado mal, y estas haciendo up a los mensajes es una falta, por mi parte no se como hacerlo o no al menos de una manera rápida y si nadie mas te respondió es porque tampoco tienen idea.

Saludos y disculpa.

Re: Añadir un botón que cambie una imagen del foro por otra

Publicado: 20 Mar 2011, 14:52
por Orzak
Ah, disculpad. Error por mi parte no haberme fijado en la falta de los "up".

A ver, ya que nadie tiene la respuesta, os voy a contar lo que he hecho, he conseguido algo pero es la mitad del camino:

Creé 2 archivos .php en la raíz del foro, uno sería el que reemplazase el link de la imagen a verde (on) y el otro archivo a rojo (off)

El código que incluí dentro del php es esto:

Código: Seleccionar todo

<?php
$file = "styles/IDLaunch_Black/template/overall_header.html";
$archivo = file_get_contents($file);
$cadena = str_replace("http://guitarinfo.es/images/bolaroja.gif","http://guitarinfo.es/images/bolaverde.gif",$archivo);
file_put_contents($file,$cadena);
?>
Lo que hace este código es buscar el archivo, coger el contenido, buscar la cadena de texto y reemplazarla.
Luego lo único que hay que hacer es entrar en el archivo .php y se cambia sin problemas.

Ahora bien, estaría bien crear un botón en el acp para automatizarlo lo máximo posible, ¿tenéis alguna idea?


¡Un saludo!

Re: Añadir un botón que cambie una imagen del foro por otra

Publicado: 20 Mar 2011, 15:07
por Alorse
Si se puede, pero no es tan sencillo, pero te tengo una idea mas que puede servir,
Veo que Radio.php es una pagina personalizada, lo que puedes hacer es crear un enlace a dicho archivo y que solo administradores puedan ver ese enlace, me explico.

Abres el html de la radio, y en algún lado pones lo siguiente:

Código: Seleccionar todo

<!-- IF U_ACP -->
   <br /><strong><a href="archivo.php?estado=cambiar">Cambiar estado</a></strong>
<!-- ENDIF -->
Y el archivo.php, lo cambias por lo siguiente:

Código: Seleccionar todo

<?php
if($_GET['estado'] == 'cambiar'){
  $file = "styles/IDLaunch_Black/template/overall_header.html";
  $archivo = file_get_contents($file);
  $cadena = str_replace("http://guitarinfo.es/images/bolaroja.gif","http://guitarinfo.es/images/bolaverde.gif",$archivo);
  file_put_contents($file,$cadena);
  header ("Location: http://www.guitarinfo.es/Radio.php"); 
}
?>
Fíjate si te funciona o nos avisas.

Re: Añadir un botón que cambie una imagen del foro por otra

Publicado: 20 Mar 2011, 15:24
por Orzak
Funciona perfecto Alorse, se muestra sólo a los administradores.

El único problema que se me presenta es el del borrado del caché. Para que se muestre el botón tengo que ir al panel de control y borrar el caché. ¿Hay alguna alternativa con algún tipo de comando?


Muchas gracias.

Re: Añadir un botón que cambie una imagen del foro por otra

Publicado: 20 Mar 2011, 15:35
por Alorse
Has lo siguiente, ve al ACP >> General >> Configuración de carga >> Recompilar plantillas antiguas, y le pones que Si.
Limpia por ultima vez el caché y listo, ya te debería funciona sin necesidad de borrarlo.

Re: Añadir un botón que cambie una imagen del foro por otra

Publicado: 20 Mar 2011, 15:42
por Orzak
Perfecto compañero, muchísimas gracias por la ayuda.

Re: Añadir un botón que cambie una imagen del foro por otra

Publicado: 20 Mar 2011, 15:56
por Alorse
Victor,
Vamos a optimizar un poco tu código para que no tengas que acceder a 2 archivos.php diferentes según lo que quieras hacer.

Veo que tienes dos archivos,
archivo_on.php y archivo_off.php

Así que para que no tengas que estar haciendo el proceso en dos archivos diferentes vamos a hacer lo siguiente:
Crea un archivo.php
y ponle esto:

Código: Seleccionar todo

<?php
if($_GET['estado'] == 'on'){
      $file = "styles/IDLaunch_Black/template/overall_header.html";
      $archivo = file_get_contents($file);
      $cadena = str_replace("http://guitarinfo.es/images/bolaroja.gif","http://guitarinfo.es/images/bolaverde.gif",$archivo);
      file_put_contents($file,$cadena);
      header ("Location: http://www.guitarinfo.es/Radio.php"); 
}
if($_GET['estado'] == 'off'){
      $file = "styles/IDLaunch_Black/template/overall_header.html";
      $archivo = file_get_contents($file);
      $cadena = str_replace("http://guitarinfo.es/images/bolaverde.gif","http://guitarinfo.es/images/bolaroja.gif",$archivo);
      file_put_contents($file,$cadena);
      header ("Location: http://www.guitarinfo.es/Radio.php"); 
}
?>
y en el .html pones esto:

Código: Seleccionar todo

<!-- IF U_ACP -->
   <br /><strong><a href="archivo.php?estado=off">Apagar emisora</a></strong>
   <br /><strong><a href="archivo.php?estado=on">Encender emisora</a></strong>
<!-- ENDIF -->

Re: Añadir un botón que cambie una imagen del foro por otra

Publicado: 20 Mar 2011, 16:55
por Orzak
Hecho, funciona como debería.

Muchas gracias, la verdad es que esto es bastante nuevo para mí, investigo lo que puedo pero no tengo prácticamente ningún conocimiento del lenguaje php.

De todas formas he entendido lo que haces en esos códigos.


Un saludo ;)