¡Bienvenido a PHPost!

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

⚖️ Aviso Legal y Normas de Contenido

PHPost.es es una comunidad dedicada al soporte, desarrollo y difusión de software libre para la creación y administración de comunidades en línea.

Compromiso con la legalidad: No se permite la publicación, promoción o distribución de software pirateado, contenido warez ni material que infrinja derechos de autor o cualquier otra normativa aplicable.

Responsabilidad: Cada usuario es responsable del contenido alojado en su propio sitio web y del uso que haga del software. Los administradores y desarrolladores de Risus Nova no controlan ni supervisan los servidores o contenidos gestionados por terceros.

⚠️ Aviso de seguridad

Risus Nova se distribuye únicamente a través de phpost.es, que es la fuente oficial del proyecto donde publicamos las versiones verificadas.

Recomendamos no utilizar copias obtenidas desde sitios de terceros, ya que podrían haber sido modificadas y no contar con la integridad del código original, lo que puede suponer riesgos de seguridad en la instalación.

Para garantizar una instalación segura y actualizada, descarga siempre la versión oficial desde el botón disponible en esta página.

Importante: No pediremos donaciones en ningún momento ni en ninguna plataforma (Ko-fi, PayPal, redes sociales u otras). Si encuentras campañas de donación que utilicen el nombre de Risus Nova o PHPost, no tienen ninguna relación con el proyecto.

🔄 Desarrollo activo

Risus Nova forma parte de una nueva etapa del proyecto PHPost, en evolución constante con mejoras, correcciones y nuevas funciones. Puedes seguir el progreso y los cambios oficiales a través del changelog y la comunidad.

Risus Nova 2.1 Estable Desarrollo activo Última actualización: 12/07/2026 Ver Demo Changelog 261 Desarrollo del tema: 75% (fase actual de desarrollo) Descargar
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


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)