3
Bueno 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
Código PHP: ( Seleccionar Todo )
/** NOTICIAS **/
} elseif($action == 'news'){
arriba agregarán
Código PHP: ( Seleccionar Todo )
} 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
Código PHP: ( Seleccionar Todo )
'admin-badwords-delete' => array('n' => 4, 'p' => ''),
Código PHP: ( Seleccionar Todo )
'admin-eliminar-sql' => array('n' => 4, 'p' => ''),
'admin-restaurar-sql' => array('n' => 4, 'p' => ''),
'admin-ejecutar-sql' => array('n' => 4, 'p' => ''),
Código PHP: ( Seleccionar Todo )
include("../class/c.admin.php");
$tsAdmin = new tsAdmin();
Código PHP: ( Seleccionar Todo )
if($action === 'admin-eliminar-sql' OR $action === 'admin-restaurar-sql' OR $action === 'admin-ejecutar-sql') {
include("../class/c.database.php");
$dbase = new tsDataBase();
}
Código PHP: ( Seleccionar Todo )
default:
die('0: Este archivo no existe.');
break;
Código PHP: ( Seleccionar Todo )
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
Código: ( Seleccionar Todo )
{include file='admin_mods/m.admin_rangos.tpl'}Código: ( Seleccionar Todo )
{elseif $tsAction == 'execute' || $tsAction == 'backup'}
{include file='admin_mods/m.admin_database.tpl'}5 - En tema/templates/admin_mods/m.admin_sidemenu.tpl buscan
Código: ( Seleccionar Todo )
<h4>Configuración de PHPost</h4>Código: ( Seleccionar Todo )
<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
Código: ( Seleccionar Todo )
/**
* 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


Facebook
Twitter
Reddit
Digg
del.icio.us
Tumblr
Pinterest
Blogger
Fark
LinkedIn
Mix
Google