- Sky
- Blueberry
- Slate
- Blackcurrant
- Watermelon
- Strawberry
- Orange
- Banana
- Apple
- Emerald
- Chocolate
- Charcoal
-
Similar Content
-
By Miguel92
Instalador automático de themes!
Es completamente básico y no requiere de mucha instalación.
1 - Abren header.php y al final agregan
include TS_ROOT . "/inc/InstallAutomaticTheme.php";
2 - Descargan "InstallAutomaticTheme.php" y lo agregan en inc/
y listo todos los themes que agregues en "themes" y que contengan el archivo "install.php" los va a instalar, primero comprobará si lo tienen instalado en caso que si lo tengan, no lo va a agregar otra vez.
-
By Miguel92
Hola a todos, no se si les interesa, pero les dejó este mod! (No sé si era la idea que tenía)
Mod iniciado por: KMario19
Topic: [Desarrollo] BBCode file para archivos
No lo he encontrado terminado, así que supongo que para usar este mod, deben tener:
[SECCIÓN] Archivos V1.2
[SECCIÓN] Archivos V2
[SECCIÓN] Archivos v2.2 (Actualizado a 1.3) [ZIP]
Topic: Sección archivos v2.2
Iniciamos con la instalación
1 - Buscamos en .htaccess y buscamos
RewriteRule ^mod-history/([A-Za-z0-9_-]+)/ inc/php/mod-history.php?ver=$1 [QSA,L] debajo agregaremos
# Descargar RewriteRule ^download/([0-9_-]+)$ inc/php/download.php?id=$1 [QSA,L]
2 - Luego vamos a inc/class/c.core.php y buscamos
public function setMenciones($html) { arriba de la función (también puede ir arriba de la última })
# Extraemos el nombre del archivo public function parseFiles($content) { preg_match_all('/\[file\=(\d+)\]/i', $content, $files); foreach ($files[0] as $id => $file) { $dato = db_exec('fetch_assoc', db_exec([__FILE__, __LINE__], 'query', "SELECT file_id, f_nombre, f_descargas, f_ext FROM a_files WHERE file_id = {$files[1][$id]} LIMIT 1")); if($dato["file_id"] > 0) { $replace = "<a href=\"{$this->settings["url"]}/download/{$dato["file_id"]}\">{$dato["f_nombre"]}.{$dato["f_ext"]} <span style=\"color:#aaa\">{$dato["f_descargas"]} descargas</span>"; } else $replace = "<span style=\"color:#f00\">Archivo eliminado...</span>"; $content = str_replace($file, $replace, $content); } return $content; }
3 - Después buscamos en inc/class/c.posts.php
$postData['user_firma'] = $tsCore->parseBadWords($tsCore->parseBBCodeFirma($postData['user_firma']),true); arriba agregamos
$postData['post_body'] = $tsCore->parsefiles($postData['post_body']);
4 - Subimos este archivo "download.php" en inc/php
5 - Luego en tema/js/wysibb.js buscan
smilebox: "Emoticonos", y debajo pegan
file: "Descargar archivo",
un poco más abajo buscan
modal_link_title: "Insertar enlace", y arriba agregan
modal_link_id: "Inserta el ID del archivo",
luego buscan
strike,sup,sub,| y a lado agregan
,file
más abajo buscan
img : { y arriba pegan (en buttonHTML lo pueden definir ustedes)
file : { title: CURLANG.file, buttonHTML: '<span class="fa-solid fa-paperclip"></span>', // Pueden agregar imagen o lo que deseen modal: { title: CURLANG.modal_link_id, width: "500px", tabs: [ { input: [ {param: "FILE",title:CURLANG.modal_link_id} ] } ] }, transform : { '<a href="{FILE}">{FILE}</a>':"[file={FILE}]" } },
bueno, eso todo... espero no olvidarme de nada!
-
By Miguel92
Actualizar a Smarty 4.0
1 - Deben descargar la última versión de smarty del repositorio en github.
2 - Luego van a inc/smarty y eliminan todo el contenido (Aviso, si tienen archivos agregados en plugins les recomiendo hacer una copia)
3 - Abren el archivo descargado "smarty-master.zip", acceden a la carpeta que contiene y luego buscan la carpeta "libs" y extraen el contenido dentro de "inc/smarty"
4 - Ahora vamos a la raíz de nuestro sitio y abrimos "header.php" y sigan los siguientes pasos:
A Buscan
define('TS_FILES', TS_ROOT.'/files/'); y debajo agregamos
define('TS_SMARTY', TS_ROOT.'/inc/smarty/'); B Arriba de "include 'config.inc.php';" agregan
# Definimos donde estan los temas define('TS_THEMES', TS_ROOT . '/themes/'); # Definimos donde se estan los plugins adicionales define('TS_PLUGINS', TS_EXTRA . 'plugins/'); # Tiempo de vida del cache antes de ser eliminado [5hs] (3600 equivale 1hs) define('CACHE_LIFE_TIME', 3600 * 5); define('CACHE_CHECKED', TRUE); # Solo usar las carpetas agregadas en $smarty->setTemplateDir() define('SECURITY', TRUE); # Para comprimir el html y que sea más rápido define('COMPRESS_HTML', FALSE); C En inc/ext crean una carpeta llamada plugins y descargar plugins.zip y la descomprimen en "inc/ext"
Contenido del comprimido zip: fecha, getUrl, hace, kmg, nl2br, quot, rtrim, seo, strlen, trim y ucfirst
D Un poco más abajo buscamos y lo borramos
// Smarty include TS_CLASS.'c.smarty.php'; E Más abajo buscamos
// Smarty $smarty = new tsSmarty(); y reemplazamos por
# Todas las instrucciones de smarty comienzan include TS_ROOT . "/inc/smarty.config.php"; F Al no existir el archivo "smarty.config.php" lo crean dentro de "inc"
5 - Ahora buscamos "/inc/smarty.config.php" y empezaremos la configuración.
A - Abrimos la etiqueta de <?php y luego agregan estas instrucciones
6 - Ahora vamos a la raíz de nuestro sitio y abrimos "footer.php":
A - Borramos todo el contenido del archivo y la reemplazaremos con esto
PD: Se me olvido mencionar que deben ir a inc/php/ajax_files.php y borrar lo siguiente, ya que no lo usaremos
$smarty->template_ts = false; // SMARTY SETTINGS
NOTA:
Como verán en el array $_ACCESO_TPL_PHP_ = [...items...], es el acceso a esas carpetas. ¿Por que incluí esto?, fácil es para simplificar más, antes para incluir un archivo se tenía que agregar de la siguiente manera
{include file='sections/main_header.tpl'} pero como en este ejemplo, al estar la ruta de la carpeta "sections" en el array se puede usar así
{include file='main_header.tpl'} sin tener que hacer referencia a la carpeta a la que se tenga que acceder, también se puede usar de la forma corta
{include 'main_header.tpl'} En la parte que accede al tema, css, js e images es para el funcionamiento de los plugins que había realizado, si desean lo pueden borrar... A no ser que quieran el plugin al que llame phpost, ¿Cuál es su función?: Es agregar todos los css, js sin tener que escribir toda la ruta
para acceder a dicho archivo y en caso de que este archivo no exista, no agregará nada(no va a ser una linea vacía)
este sería un ejemplo:
Agregará la fuente "Roboto" desde google y los estilos que estén mencionados en los parámetros
y lo que que sería cache es como esto "archivo.css?{$smarty.now}", así cuando se hace un cambio
lo apliquen los cambios
{phpost fonts=["Roboto"] css=[ "tema" => ["estilo.css", "css" => ["live.css", "wysibb.css", "$tsPage.css"]], "cache" => true ] ... ETC ... } Al tener la carpeta plugins dentro de inc/ext, puedes agregar más sin problemas
-
By Miguel92
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
-
-
Recently Browsing 0 members
No registered users viewing this page.