¡Bienvenido a PHPost!

Para participar en el foro, descargar complementos y acceder al chat, es necesario tener una cuenta activa.
Por favor, regístrate utilizando un correo electrónico válido para completar la activación.

Descarga Risus Nova 2.0   (Ver notas de la versión) Estable | Actualizado: 16/06/2026

Regístrate Descargar Risus Nova
Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

COMPLEMENTOS Crear copia de seguridad desde la administración
#1

3
Mejor respuesta del mensaje Crear copia de seguridad desde la administraciónBueno como ya había mencionado, ya esta la "herramienta" para crear copias de seguridad completa o parcial de la base de datos y podrás restaurar dicho copia, el problema será que no tengas acceso a la administración del sitio y allí necesitarás una herramienta externa pero que funcione dentro del sitio.

Solo tengo que hacerle algunos cambios a la herramienta que ya tengo creada desde hace 1 año.

Capturas:
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]

Antes de comenzar, si tienes Debes agradecer para ver el contenido... tendrás que quitarlo o eliminar archivos

Bueno comencemos con la integración, los archivos para descargar están al final.

1 - Este archivo "c.database.php" y lo agregan a inc/class/

2 - En inc/php/admin.php buscamos
 
   /** NOTICIAS **/
   } elseif($action == 'news'){ 

arriba agregarán
 
    } elseif($action == 'execute' OR $action == 'backup') {
       # Incluimos el archivo necesario
        include("../class/c.database.php");
        $tsDataBase = new tsDataBase();
        # Todas las opciones de la copia de seguridad
        if($action == 'backup') {
            if(empty($act)) {
                $smarty->assign('tsListBackup'$tsDataBase->listBackup());
            # Creamos el backup completo
            } elseif($act === 'new_backup') {
                if(!empty($_POST["nombre_copia"])) {
                    if($tsDataBase->createBackUp()[0]) $tsCore->redirectTo($tsCore->settings['url'].'/admin/backup?save=true');
                    else $smarty->assign("tsError"$tsDataBase->createBackUp()[1]);
                }
            # Creamos el backup seleccionando tablas
            } elseif($act === 'new_backup_select') {
                $smarty->assign('tsTablas'$tsDataBase->show_tables());
                if(!empty($_POST["nombre_copia"])) {
                    if($tsDataBase->seletedTables()[0]) $tsCore->redirectTo($tsCore->settings['url'].'/admin/backup?save=true');
                    else $smarty->assign("tsError"$tsDataBase->seletedTables()[1]);
                }
            # Descargamos el fichero
            } elseif($act === 'download') {
                if(isset($_GET["code"])) {
                    $smarty->assign('tsDownload'$tsDataBase->downloader());
                }
            }
        


3 - Ahora en inc/php/ajax/ajax.php buscan
 
      'admin-badwords-delete' => array('n' => 4'p' => ''), 
debajo agregan
 
      'admin-eliminar-sql' => array('n' => 4'p' => ''),
      'admin-restaurar-sql' => array('n' => 4'p' => ''),
      'admin-ejecutar-sql' => array('n' => 4'p' => ''), 
más abajo buscan
 
    include("../class/c.admin.php");
   $tsAdmin = new tsAdmin(); 
y agregan
 
   if($action === 'admin-eliminar-sql' OR $action === 'admin-restaurar-sql' OR $action === 'admin-ejecutar-sql') {
       include("../class/c.database.php");
        $dbase = new tsDataBase();
   
por último buscan
 
      default:
         die('0: Este archivo no existe.');
      break; 
y arriba agregan
 
        case 'admin-eliminar-sql':
            echo $dbase->delete_file_sql();
        break;
        case 'admin-restaurar-sql':
            echo $dbase->restore_file_sql();
        break;
        case 'admin-ejecutar-sql':
            echo $dbase->executeSQL();
        break

4 - Ahora en tema/templates/t.admin.tpl buscan
 
{include file='admin_mods/m.admin_rangos.tpl'}
y debajo pegan
 
{elseif $tsAction == 'execute' || $tsAction == 'backup'}
{include file='admin_mods/m.admin_database.tpl'}

5 - En tema/templates/admin_mods/m.admin_sidemenu.tpl buscan
 
<h4>Configuraci&oacute;n de PHPost</h4>
y arriba agregan
 
<h4>Seguridad</h4>
<ul class="cat-list">
    <li id="a_configs"><span class="cat-title"><a href="{$tsConfig.url}/admin/execute">Ejecutar consultas</a></span></li>
    <li id="a_main"><span class="cat-title"><a href="{$tsConfig.url}/admin/backup">Crear copia</a></span></li>
</ul>

6 - Este archivo "m.admin_database.tpl" y lo agregan a tema/templates/admin_mods/

7 - Por último en tema/ja/admin.js al final del archivo agregan
 
/** 
 * Database
 * para ejecutar consultas y crear copias
*/
var database = new function() {
    this.execute = () => {
        var SQL = 'sql=' + $("#sql").val();
        $.post(global_data.url + '/admin-ejecutar-sql.php', SQL, h => {
            switch (h.charAt(0)) {
                case '0':
                    mydialog.alert('Error', h.substring(3), false)
                break;
                case '1':
                    mydialog.alert('Bien', h.substring(3), true)
                break;
            }
        })
    },
   this.delete = (id, file, gew) => {
      if(!gew) {
         mydialog.show()
         mydialog.title('Eliminar')
         mydialog.body(`Estas seguro que quieres eliminar este archivo: ${file}`) 
         mydialog.buttons(true, true, 'Borrar SQL', `database.delete(${id}, '${file}', true)`, true, false, true, 'Cancelar', 'close', true, true);
         /*mydialog.buttons([
            {mostrar:true,texto:'Borrar SQL',accion:`database.delete(${id}, '${file}', true)`,activo:true},
            {mostrar:true,texto:'Cancelar',accion:'cerrar',activo:true}
         ]);
*/         mydialog.center()
      } else {
         $.post(global_data.url + '/admin-eliminar-sql.php', {id,file}, e => {
            switch (e.charAt(0)) {
               case '0':
                  mydialog.alert('Error', e.substring(3));
               break;
               case '1':
                  mydialog.close();
                  $("#sql" + id).remove();
               break;
            }
         })
      }
   },
   this.restore = (file, gew) => {
      if(!gew) {
         mydialog.show()
         mydialog.title('Restaurar')
         mydialog.body(`Estas seguro que quieres restaurar esta copia: ${file}`) 
         mydialog.buttons(true, true, 'Restaurar SQL', `database.restore('${file}', true)`, true, false, true, 'Cancelar', 'close', true, true);
         /*mydialog.buttons([
            {mostrar:true,texto:'Restaurar SQL',accion:`database.restore('${file}', true)`,activo:true},
            {mostrar:true,texto:'Cancelar',accion:'cerrar',activo:true}
         ]);*/
         mydialog.center()
      } else {
         mydialog.procesando_inicio('', "Espere");
         mydialog.buttons(false);
         mydialog.center()
         $.post(global_data.url + '/admin-restaurar-sql.php', {restore: file}, e => {
            switch (e.charAt(0)) {
               case '0':
                  mydialog.procesando_fin();
                  mydialog.alert('Error', e.substring(3), false);
               break;
               case '1':
                  mydialog.procesando_fin();
                  mydialog.alert('Bien', e.substring(3), false);
               break;
            }
         })
      }
   }
}

Descargar los archivos "Debes agradecer para ver el contenido..."

En caso que tengan problemas al querer crear las copias de seguridad, comprueben que se haya creado la carpeta "database" en files/ y que tenga los permisos 0777 aplicados, en caso contrario deberán crearlo y darle los permisos correspondientes
Responder


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)