Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal

Search the Community

Showing results for tags 'ajax'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • El núcleo de PHPost
    • Novedades e información
    • Off Topic
    • Presentaciones
  • PHPost Risus
    • Actualizaciones
    • Versión 1.1
    • Versión 1.2
  • La esquina
    • Rincón del PC
    • Rincón del móvil
  • Actualizaciones individuales de PHPost Risus's PHP 7/8
  • Actualizaciones individuales de PHPost Risus's Smarty
  • Actualizaciones individuales de PHPost Risus's EXTRAS
  • Actualizaciones individuales de PHPost Risus's Fixes
  • Actualizaciones individuales de PHPost Risus's Actualizaciones
  • Actualizaciones individuales de PHPost Risus's Complementos

Calendars

There are no results to display.

There are no results to display.


Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Sitio web


ICQ


Yahoo


Jabber


Skype


Localización


Intereses

Found 3 results

  1. 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: Antes de comenzar, si tienes Ejecutar SQL desde la administración [Arreglado] 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 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ó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 "-#- Justo aquí -#-" 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
  2. Bueno lo que trate de hacer es simplificar un poco, quieres agregar una imagen a "rangos", "categorías" o "medallas" y no quieres entrar desde el FTP o CPanel, bueno con esta herramienta deberías poder realizar esta tarea desde la administración de tu sitio. Les mostraré algunas imágenes, pero no esta realizado con el default, si no que es una versión que estoy realizando. Bueno comenzamos... 1 - En inc/class/c.admin.php lo pueden agregar al final o donde quieran. # Obtenemos todas las imagenes de la carpeta public function obtener_paquete($dir) { global $tsCore, $smarty; # Aplicamos los permisos si no los tiene foreach (["cat", "med", "ran"] as $carpeta) chmod($smarty->template_dir["images"] . 'icons/' . $carpeta, 0777); # Creamos un arreglo $data = []; # Buscamos en la carpeta... $carpeta = $smarty->template_dir["images"] . 'icons/' . $dir; $imagenes = opendir( $carpeta ); # Recorremos la carpeta while ($icono = readdir($imagenes)) { if($icono != '.' && $icono != '..'): # Obtenemos información del archivo $inf = getimagesize($carpeta . '/' . $icono); $arr = [ "hash" => substr(md5(explode('.', $icono)[0]), 0, 6), "icon" => explode('.', $icono)[0], "url" => $tsCore->settings["images"] . '/icons/' . $dir . '/' .$icono, "width" => $inf[0], "height" => $inf[1], "type" => $inf["mime"] ]; if(isset($_GET["size"]) or isset($_GET["type"])) { if(intval($_GET["size"]) === $inf[0] or 'image/'.$_GET["type"] === $inf["mime"]) { array_push($data, $arr); } } else array_push($data, $arr); endif; } closedir( $imagenes ); # Retornamos el arreglo return $data; } public function eliminar_icono_paquete() { global $tsCore, $smarty; # Buscamos en la carpeta... $carpeta = $smarty->template_dir["images"] . 'icons/' . $tsCore->setSecure($_POST["path"]); # Eliminamos si son la misma imagen con difente tamaño foreach($this->obtener_paquete($_POST["path"]) as $eliminar) { if($eliminar["hash"] === $_POST["hash"]) { if($_POST["path"] === 'med') { $sizes = [16, 32]; foreach ($sizes as $size) { $nimg = "{$eliminar["icon"]}_{$size}." . substr($eliminar["type"], 6); unlink($carpeta . '/' . $nimg); } return true; } else { $nimg = "{$carpeta}/{$eliminar["icon"]}." . substr($eliminar["type"], 6); return (unlink($nimg)) ? true : false; } } } } public function subir_icono() { global $smarty; # Mover a... $mover = $smarty->template_dir["images"] . 'icons/' . $_POST["path"] . DIRECTORY_SEPARATOR; // if (($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/gif")) { # Agregamos la imagen, si existe, esta será reemplazada por la nueva return (move_uploaded_file($_FILES["file"]["tmp_name"], $mover . $_FILES['file']['name'])) ? '1: Imagen agregada correctamente...' : '0: No se pudo subir la imagen!'; } else return false; } Este código es para Smarty 4, si no lo tienes actualizado, lo que debes hacer es lo siguiente, buscas esto $smarty->template_dir["images"] . 'icons/' y lo reemplazas por TS_ROOT . '/themes/' . $tsCore->settings["tema"]['t_path'] . '/images/icons/' y borrar el de las funciones, excepto el que lleva $tsCore, allí solo eliminas , $smarty global $smarty; 2 - En inc/php/admin.php buscan } elseif($action == 'creditos'){ y arriba agregan # PACKS } elseif($action == 'packs') { $smarty->assign('tsDir', $_GET["path"]); if($act === 'abrir') { $smarty->assign('tsPack', $tsAdmin->obtener_paquete($_GET["path"])); } 3 - En inc/php/ajax/ajax.admin.php buscan 'admin-badwords-delete' => array('n' => 4, 'p' => ''), y debajo pegan 'admin-eliminar-icono' => array('n' => 4, 'p' => ''), 'admin-subir-icono' => array('n' => 4, 'p' => ''), más abajo default: die('0: Este archivo no existe.'); break; arriba agregan case 'admin-eliminar-icono': echo $tsAdmin->eliminar_icono_paquete(); break; case 'admin-subir-icono': echo $tsAdmin->subir_icono(); break; 4 - En tema/templates/admin_mods/ crean un archivo llamado "m.admin_packs.tpl" y dentro agregan, les recuerdo que lo pueden adaptar a su theme <div class="boxy-title"> <h3>Control de paquetes de imagenes</h3> </div> <div id="res" class="boxy-content"> <p class="alerts ok">Desde aquí podrás ver, agregar, eliminar las imagenes e iconos que estan guardados en "<a href="{$tsConfig.url}/admin/packs?act=abrir&path=ran">ran</a>", "<a href="{$tsConfig.url}/admin/packs?act=abrir&path=med">med</a>", "<a href="{$tsConfig.url}/admin/packs?act=abrir&path=cat">cat</a>".</p> {if $tsSave}<div class="alerts ok">Tus cambios han sido guardados.</div>{/if} <hr class="separator"> {if $tsAct === ''} <div style="display:grid;gap:10px;grid-template-columns: repeat(3, 1fr);"> <a href="{$tsConfig.url}/admin/packs?act=abrir&path=cat" class="block text-center"> <img width="140" height="140" src="{$tsConfig.images}/category.svg" alt="Categorías"> <strong style="margin-top:4px;display: block;">Categorías</strong> </a> <a href="{$tsConfig.url}/admin/packs?act=abrir&path=med" class="block text-center"> <img width="140" height="140" src="{$tsConfig.images}/award.svg" alt="Medallas"> <strong style="margin-top:4px;display: block;">Medallas</strong> </a> <a href="{$tsConfig.url}/admin/packs?act=abrir&path=ran" class="block text-center"> <img width="140" height="140" src="{$tsConfig.images}/ran.svg" alt="Rangos"> <strong style="margin-top:4px;display: block;">Rangos</strong> </a> </div> {elseif $tsAct === 'abrir'} {if $tsDir === 'med' || $tsDir === 'ran'} <span>Filtros:</span> {if $tsDir === 'med'} <a href="{$tsConfig.url}/admin/packs?act=abrir&path=med" style="text-align:center;">Todos</a> - <a href="{$tsConfig.url}/admin/packs?act=abrir&path=med&size=16" style="text-align:center;">16x16</a> - <a href="{$tsConfig.url}/admin/packs?act=abrir&path=med&size=32" style="text-align:center;">32x32</a> {/if} {if $tsDir === 'ran'} <a href="{$tsConfig.url}/admin/packs?act=abrir&path=ran" style="text-align:center;">Todos</a> - <a href="{$tsConfig.url}/admin/packs?act=abrir&path=ran&type=gif" style="text-align:center;">GIF</a> - <a href="{$tsConfig.url}/admin/packs?act=abrir&path=ran&type=png" style="text-align:center;">PNG</a> {/if} {/if} <table class="admin_table"> <thead> <tr> <th>Icono</th> <th>Nombre</th> <th>Dimensiones</th> <th>Tipo</th> <th>Acciones</th> </tr> </thead> {foreach $tsPack item=ic} <tr class="{$ic.hash}"> <td style="text-align:center;"><img src="{$ic.url}" alt="{$ic.icon}"></td> <td style="width: max-content">{$ic.icon}</td> <td>{$ic.width}x{$ic.height}</td> <td>{$ic.type}</td> <td class="admin_actions flex jcsaround aicenter"> <a href="javascript:packs.borrar('{$tsDir}', '{$ic.hash}')" title="Eliminar"><i class="fas fa-trash"></i></a> </td> </tr> {/foreach} </table> <hr class="separator"> <div style="text-align:center;"> <a href="{$tsConfig.url}/admin/packs?act=agregar&path={$tsDir}" class="mBtn">Agregar icono en {$tsDir}</a> </div> {elseif $tsAct === 'agregar'} <form method="post" enctype="multipart/form-data"> <input type="hidden" name="path" id="path" value="{$tsDir}"> <div class="form-line"> <label for="image">Sube una imagen...</label> <input type="file" class="form-control-file" name="image" id="image"> </div> <p><a href="javascript:packs.subir()" class="mBtn btnOk">Agregar</a></p> </form> {/if} </div> 5 - En tema/templates/admin_mods/m.admin_sidemenu.tpl buscan <li id="a_badwords"><span class="cat-title"><a href="{$tsConfig.url}/admin/badwords">Censuras</a></span></li> y debajo agregan <li id="a_main"><span class="cat-title"><a href="{$tsConfig.url}/admin/packs">Control de iconos</a></span></li> 6 - En tema/js/admin.js al final del archivo agregan /** * Control de paquete * para agregar, editar y eliminar iconos */ var packs = new function() { this.reload = path => location.href = global_data.url + '/admin/packs?act=abrir&path=' + path, this.subir = () => { var formData = new FormData(); formData.append('file', $('#image')[0].files[0]); formData.append('path', $('#path').val()); $.ajax({ url: global_data.url + '/admin-subir-icono.php', type: 'post', data: formData, contentType: false, processData: false, success: response => { switch(response.charAt(0)) { case '0': mydialog.alert('Error', response.substring(3), false); mydialog.center(); break; case '1': mydialog.show() mydialog.title('Bien!') mydialog.body(response.substring(3)) mydialog.buttons(true, true, 'Continuar', 'packs.reload(' + carpeta + ')', true, false, false); /*mydialog.buttons({mostrar:true,texto:'Continuar',accion:`packs.reload('${path}')`,activo:true});*/ mydialog.center() break; } } }); return false; }, this.borrar = (carpeta, hash, status) => { if(!status) { mydialog.show() mydialog.title('¿Deseas eliminar ' + (carpeta == 'med' ? 'estos iconos' : 'este icono') + '?') mydialog.body('Esto eliminará el/los iconos de su tema') mydialog.buttons(true, true, 'Continuar', 'packs.borrar(' + carpeta + ', ' + hash + ', true)', true, false, true, 'No', 'close', true, true); /*mydialog.buttons([ {mostrar:true,texto:'Continuar',accion:`packs.borrar('${carpeta}', '${hash}', true)`,activo:true}, {mostrar:true,texto:'No',accion:'cerrar',activo:true} ]);*/ mydialog.center() } else { var params = ['path=' + carpeta, 'hash=' + hash].join('&') $.post(global_data.url + '/admin-eliminar-icono.php', params, del => { mydialog.close(); if(del) { if(carpeta === 'med') { $("tr." + hash).each( (inx, trh) => trh.remove()) } else $("tr." + hash).remove() } }) } } } 7 - Suben estas 3 imágenes a tema/images/ Para la próxima le quiero agregar un paginador, y la subida de múltiples imágenes... NOTA: Para que funciones correctamente, el complemento le asignará a las carpetas ran, cat y med los permisos necesarios para que funcione, en caso que tenga error o no suba las imágenes a dichas carpetas lo que deben hacer es darle permisos 0777 manualmente a las carpetas mencionadas.
  3. En este caso se usará CDN para que sea mejor 1 - En tema/templates/modules/m.cuenta_sidebar.tpl y reemplazamos todo por esto <div class="sidebar-tabs clearbeta"> <h3>Mi Avatar</h3> <div class="avatar-big-cont"> <div style="display: none" class="avatar-loading"></div> <img width="120" height="120" alt="" src="{$tsConfig.url}/files/avatar/{if $tsPerfil.p_avatar}{$tsPerfil.user_id}_120{else}avatar{/if}.jpg?t={$smarty.now}" class="avatar-big" id="avatar-img"/> </div> <ul class="change-avatar" id="change"> <li class="local-file" id="pc" style="width: 50%;text-align:center;"><span>Local</span></li> <li class="url-file" id="url" style="width: 50%;text-align:center;"><span>Url</span></li> </ul> <div class="clearfix"></div> <a href="javascript:avatar.subir()" class="avatar-next edit" >Editar</a> </div> <div class="clearfix"></div> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/croppr.min.css" integrity="sha256-Bbkel8+0sOmrvX75oDwNElgbmrAP+Pw+XXKKUwoKiVE=" crossorigin="anonymous"> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/croppr.min.js" integrity="sha256-VPADQYvd0gjLaeduvmP9/UZAdNW3D2sJieeJ3a3PX64=" crossorigin="anonymous"></script> <script src="{$tsConfig.js}/subir-avatar.js?{$smarty.now}"></script> 2 - Creamos un archivo llamado "subir-avatar.js" y lo agregamos en tema/js const next = $(".avatar-next"); const sizeImg = 120; function cambiarFile(){ const input = $('#file-avatar')[0]; if(input.files && input.files[0]) { let name_file = decodeURIComponent(input.files[0].name); document.querySelector(".drop-message").innerHTML = name_file; next.removeClass('btn-disabled') } } $("#url-avatar").on('keyup', () => { if($("#url-avatar").val().length > 5) next.removeClass('btn-disabled') }) $("#change > li, #change > li span").on('click', event => { const block = $("#change") block.attr('class', '') var tipo = event.target.textContent if(tipo === 'Local') { block.html(`<div id="drop-region"> <input type="file" name="local" id="file-avatar" onchange="return cambiarFile();" class="browse"/> <div class="drop-message"> Arrastra y suelta la imagen o haz clic para subir </div> </div>`) } else { block.html(`<div style="margin: 0 auto 10px auto;"> <input type="text" name="url" autocomplete="off" id="url-avatar" placeholder="Url de la imagen" class="browse form-control"/> </div>`) } }) var avatar = { uid: false, key: false, ext: false, informacion: '', current: false, success: false, subir: async () => { $(".avatar-loading").show().css('display', 'flex'); inputs = [].slice.call(document.querySelectorAll(".browse")) inputs.forEach(input => { const datoUrl = new FormData(); datoUrl.append('url', (input.name == 'url') ? input.value : input.files[0]) if(!empty(input.value)) { fetch(global_data.url + '/upload-avatar.php', { method: 'POST', body: datoUrl }) .then(response => response.json()) .then(blobData => { avatar.subida_exitosa(blobData) }); } }) }, subida_exitosa: rsp => { if (rsp.error == 'success') avatar.success = true; else if (rsp.msg) { avatar.key = rsp.key; avatar.ext = rsp.ext; avatar.cortar(rsp.msg); } else cuenta.enviar_alerta(rsp.error, 0); $(".avatar-loading").hide(); }, cortar: img => { img = img + '?t=' + new Date(); mydialog.show(true); mydialog.title("Cortar avatar"); mydialog.body(`<img class="avatar-cortar" src="${img}" />`); mydialog.buttons(true, true, 'Cortar', "avatar.guardar()", true, false, true, 'Cancelar', 'close', true, true); /*mydialog.buttons([ {mostrar: true, texto: 'Cortar', accion: `avatar.guardar()`, activo: true}, {mostrar: true, texto: 'Cancelar', accion: 'cerrar', activo: true} ]);*/ mydialog.center(); $("#avatar-img, #avatar-menu").attr("src", img).on('load', () => { var croppr = new Croppr('.avatar-cortar', { aspectRatio: 1, // Mantemos el tamanio cuadrado 1:1 maxSize: { width: sizeImg, // Tamano por defecto height: sizeImg // Tamano por defecto }, // Enviamos las coordenadas para cortar la imagen // Tiene la funcion onCropEnd ya que es como va a quedar onCropEnd: data => avatar.informacion = data, }); }); }, recargar: () => $("#avatar-img").attr("src", avatar.current + '?r' + new Date()), guardar: () => { if (empty(avatar.informacion)) cuenta.enviar_alerta('Debes seleccionar una parte de la foto', 0); else { const coordenadas = new FormData(); coordenadas.append('key', avatar.key) coordenadas.append('ext', avatar.ext) coordenadas.append('x', avatar.informacion.x) coordenadas.append('y', avatar.informacion.y) coordenadas.append('w', avatar.informacion.width) coordenadas.append('h', avatar.informacion.height) fetch(global_data.url + '/upload-crop.php', { method: 'POST', body: coordenadas }) .then(response => response.json()) .then(blobData => { if(blobData.error == "success") { mydialog.body("Tu avatar se ha creado correctamente, ahora espera que recargue la página"); setTimeout(() => location.reload(), 1200); mydialog.buttons(false) } }); } } } 3 - Luego en tema/js/cuenta.js buscar¿ var avatar = { ..... y borran todo hasta el final del archivo 4 - Luego van a inc/php/ajax.upload.php y lo reemplazan por esto <?php if ( ! defined('TS_HEADER')) exit('No se permite el acceso directo al script'); /** * Controlador AJAX * * @name ajax.upload.php * @author PHPost Team */ /**********************************\ * (VARIABLES POR DEFAULT) * \*********************************/ // NIVELES DE ACCESO Y PLANTILLAS DE CADA ACCIÓN $files = array( 'upload-avatar' => array('n' => 2, 'p' => ''), 'upload-crop' => array('n' => 2, 'p' => ''), 'upload-images' => array('n' => 2, 'p' => ''), ); /**********************************\ * (VARIABLES LOCALES ESTE ARCHIVO) * \*********************************/ // REDEFINIR VARIABLES $tsPage = 'php_files/p.upload.'.$files[$action]['p']; $tsLevel = $files[$action]['n']; $tsAjax = empty($files[$action]['p']) ? 1 : 0; /**********************************\ * (INSTRUCCIONES DE CODIGO) * \*********************************/ // DEPENDE EL NIVEL $tsLevelMsg = $tsCore->setLevel($tsLevel, true); if($tsLevelMsg != 1) { echo '0: '.$tsLevelMsg['mensaje']; die();} // CLASE require('../class/c.upload.php'); $tsUpload = new tsUpload(); // CODIGO switch($action){ case 'upload-avatar': // <-- $tsUpload->image_scale = true; $tsUpload->image_size['w'] = 640; $tsUpload->image_size['h'] = 480; // $tsUpload->file_url = $_POST['url']; // $result = $tsUpload->newUpload(3); echo json_encode($result); // --> break; case 'upload-crop': // <-- echo json_encode($tsUpload->cropAvatar($tsUser->uid)); // PARA EL PERFIL db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_perfil SET p_avatar = 1 WHERE user_id = ' . $tsUser->uid); // --> break; case 'upload-images': echo json_encode($tsUpload->newUpload(1)); break; } Eso es todo...
×