Posteador
aperpen
Vip



[MOD] Estado de mantenimiento v1 (Ajax)




¿Quien no ha querido saber, cuando una de las webs que visitan está en mantenimiento, cuanto tiempo va a tardar en volver? Muchos administradores informan por twitter, pero yo en este caso les traigo para que puedan informar fácilmente desde su web.
 
El MOD está hecho con Ajax, por lo que no se tendrá que recargar la web para enviar esta información, y podrán hacerlo fácilmente desde un input que he implementando en una barra encima de la página.
 
Empecemos:
1) Lo primero realizan esta SQL en su BD:
ALTER TABLE `w_configuracion` ADD `new` VARCHAR(350) NULL ;


2) Abren el c.core.php de inc/class y buscan:
   /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/


}

Arriba añaden:
function updateEstado($new){
global $tsUser;
if($tsUser->is_admod == 1){
if(mysql_query('UPDATE w_configuracion SET `new` = \''.$this->setSecure($new).'\''))
return true;
else
die(mysql_error());
}
return false;
}


3) Abren el ajax.feed.php de inc/php/ajax y buscan:
case 'feed-support':
//<--- CONSULTAR ACTUALIZACIONES OFICIALES Y VERIFICAR VERSIÓN ACTUAL DE ESTE SCRIPT
            $json = $tsCore->getUrlContent('http://www.phpost.net/feed/index.php?type=support&key='.$key);
            if(substr($json,0,1) == '0') eval(base64_decode(substr($json,2)));
            else echo $json;
//--->
break;


 
Y abajo añaden:
case 'feed-maintenance':
//<--- INFORMAR DEL ESTADO DEL MANTENIMIENTO
          if($tsCore->updateEstado($_GET['new']))
 echo true;
 else
 echo false;
//--->
break;

4) Abren el main_header.tpl de themes/TUTEMA/templates/sections y buscan:
{if $tsUser->is_admod == 1}{$tsConfig.install}{/if}

 
Abajo añaden:
{if $tsUser->is_admod == 1 && $tsConfig.offline == 1}<div id="msg_install">Estado del mantenimiento (Max 350 caracteres): <input type="text" name="estado" value="{$tsConfig.new}" maxlenght="350" /> <input type="button" onclick="updateMantenimiento();" value="Informar" /></div>{/if}


5) Abren el acciones.js de themes/TUTEMA/js y al final de todo agregan:
   function updateMantenimiento(){
var update = $("input[name=estado]".val();
if(!update){
mydialog.alert('Error', 'No se ha introducido ningún valor');
return false;
}//
$.ajax({
type: 'GET',
url: global_data.url + '/feed-maintenance.php',
data: 'new=' + update,
success: function(h){
if(h == 1){
//
mydialog.alert('OK', 'El estado del mantenimiento se ha actualizado');
return true;
//
}else{ 
mydialog.alert('Error', 'Ha ocurrido un error, intentelo de nuevo mas tarde');
return false;
//
}
}
});
//
}

6) Para acabar abren el mantenimiento.tpl de themes/TUTEMA/templates/sections y buscan:
 <h3>{$tsConfig.offline_message}</h3>

Y abajo añaden:
 <h4><b>Última información:</b> {$tsConfig.new}</h4>

Y listo!!
Les dejo un gif para que vean su funcionamiento:

 
Espero que les sirva y se aceptan sugerencias para mejorarlo
 
Saludos.





9 Comentarios


Cargando comentarios espera un momento...
No tienes permisos para comentar.

Para poder comentar necesitas estar Registrado. O.. ya tienes usuario? Logueate!
Ir al cielo