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

Usamos BanaHosting para alojar tanto la demo oficial como este mismo foro de Risus Nova. Cumple todos los requisitos del script (PHP 8, mod_rewrite, SSL gratis) — si quieres usar el mismo hosting que nosotros, aquí tienes el enlace.

⚠️ Aviso de seguridad

Risus Nova solo se distribuye de forma segura y verificada a través de phpost.es. Hemos detectado copias modificadas en sitios de terceros que contienen código malicioso, backdoors y funciones ocultas diseñadas para el robo de credenciales y datos sensibles. No confíes en descargas provenientes de foros, canales de Telegram o webs externas; no podemos garantizar la integridad de esos archivos. Tu seguridad es nuestra prioridad: Descarga siempre la versión oficial desde el botón inferior para asegurar una instalación limpia y libre de amenazas.

🔄 Mantente actualizado

Al estar en desarrollo activo, recibe cambios constantes — échale un vistazo de vez en cuando al changelog y a las notas de administración para estar al día de qué ha cambiado.

Risus Nova 2.0 Estable En desarrollo activo Actualizado: 24/06/2026 - 14:00 h (Hora España) Desarrollo Tema: 75% (Ver notas de la versión) (Ver Demo)

Descargar desde phpost.es
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)