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

Tampoco pedimos donaciones en ningún sitio — ni en phpost.es, ni en Ko-fi, PayPal o redes sociales. Si ves una campaña de donaciones a nombre de Risus Nova o phpost.es en cualquier sitio, es falsa — no compartas tus datos ni dones nada ahí.

🔄 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: 27/06/2026 — 21: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

DOCUMENTOS Simplificar la función saveConfig()
#1

2
Mejor respuesta del mensaje Simplificar la función saveConfig()
Simplificar la función saveConfig()
Como todos sabrán que la función saveConfig() que se encuentra en inc/class/c.admin.php,  es un dolor de cabeza para editarlo sin equivocarse...
Bueno acá les traigo una solución, pero deben tener en cuenta que los campos en la administración específicamente "Configuración" en el atributo name debe coincidir con la que tienen en la base de datos, ya que si no son iguales, este les devolverá un error.

Ejemplo 1: 
Cita:
<input type="text" id="ai_titulo" name="titulo" maxlength="24" value="{$tsConfig.titulo}" />
El titulo coincide con w_configuracion.titulo de la base de datos
Ejemplo 2: 
Cita:
<textarea name="message_welcome" id="ai_met_welcome" style="width: 260px; height: 100px; {if $tsConfig.c_met_welcome == 0} display:none; {/if}">{$tsConfig.c_message_welcome}</textarea>
El message_welcome no coincide con w_configuracion.c_message_welcome de la base de datos ya que este comienza con c_ o tal vez comienzan con c_allow_.
lo que pueden hacer es ver database.php del instalador y ver todas las que lleva c_ o c_allow_ y agregarle a los campos que lo requieran, excepto name="chat" y name="xat" ya que sería así name="chat_id" y name="xat_id"
Les dejó Debes agradecer para ver el contenido... para los que no quieran buscar, cabe recalcar que si tienen campos agregados lo tendrán que agregar devuelta. (Es de la versión default)

Bueno una vez aclarado esto, continuamos, buscamos en el archivo ya mencionado inc/class/c.admin.php...
 
function saveConfig()
    {
        global 
$tsCore;
        
//
        
$c = array(
            
'titulo' => $tsCore->setSecure($tsCore->parseBadWords($_POST['titulo'])),
            
'slogan' => $tsCore->setSecure($tsCore->parseBadWords($_POST['slogan'])),
            
'url' => $tsCore->setSecure($tsCore->parseBadWords($_POST['url'])),
            
'offline' => empty($_POST['offline']) ? 1,
            
'offline_message' => $tsCore->setSecure($tsCore->parseBadWords($_POST['offline_message'])),
            
'chat' => $tsCore->setSecure($_POST['chat']),
            
'xat' => $tsCore->setSecure($_POST['xat']),
            
'edad' => $tsCore->setSecure($_POST['edad']),
            
'active' => $tsCore->setSecure($_POST['active']),
            
'sess_ip' => empty($_POST['sess_ip']) ? 1,
            
'count_guests' => $tsCore->setSecure($_POST['count_guests']),
            
'reg_active' => empty($_POST['reg_active']) ? 1,
            
'reg_activate' => empty($_POST['reg_activate']) ? 1,
            
'met_welcome' => $tsCore->setSecure($_POST['met_welcome']),
            
'message_welcome' => $tsCore->setSecure($tsCore->parseBadWords($_POST['message_welcome'])),
            
'fotos_private' => empty($_POST['fotos_private']) ? 1,
            
'hits_guest' => empty($_POST['hits_guest']) ? 1,
            
'keep_points' => empty($_POST['keep_points']) ? 1,
            
'allow_points' => $tsCore->setSecure($_POST['allow_points']),
            
'see_mod' => empty($_POST['see_mod']) ? 1,
            
'stats_cache' => $tsCore->setSecure($_POST['stats_cache']),
            
'desapprove_post' => empty($_POST['desapprove_post']) ? 1,
            
'firma' => empty($_POST['firma']) ? 1,
            
'upload' => empty($_POST['upload']) ? 1,
            
'portal' => empty($_POST['portal']) ? 1,
            
'live' => empty($_POST['live']) ? 1,
            
'max_nots' => $tsCore->setSecure($_POST['max_nots']),
            
'max_acts' => $_POST['max_acts'],
            
'max_posts' => $tsCore->setSecure($_POST['max_posts']),
            
'max_com' => $tsCore->setSecure($_POST['max_com']),
            
'sump' => empty($_POST['sump']) ? 1,
            
'newr' => empty($_POST['newr']) ? 1,
            
'pkey' => $tsCore->setSecure($_POST['pkey']),
            
'skey' => $tsCore->setSecure($_POST['skey']),
        );
        
// UPDATE
        
if (db_exec(array(__FILE____LINE__), 'query''UPDATE `w_configuracion` SET `titulo` = \'' $c['titulo'] . '\', `slogan` = \'' .
            
$c['slogan'] . '\', `url` = \'' $c['url'] . '\', `chat_id` = \'' $c['chat'] .
            
'\', `xat_id` = \'' $c['xat'] . '\',`c_last_active` = \'' $c['active'] . '\', `c_allow_sess_ip` = \'' .
            
$c['sess_ip'] . '\', `c_count_guests` = \'' $c['count_guests'] . '\', `c_reg_active` = \'' .
            
$c['reg_active'] . '\', `c_reg_activate` = \'' $c['reg_activate'] . '\', `c_met_welcome` = \'' .
            
$c['met_welcome'] . '\', `c_message_welcome` = \'' $c['message_welcome'] . '\', `c_fotos_private` = \'' .
            
$c['fotos_private'] . '\', `c_hits_guest` = \'' $c['hits_guest'] . '\', `c_keep_points` = \'' .
            
$c['keep_points'] . '\', `c_allow_points` = \'' $c['allow_points'] . '\', `c_see_mod` = \'' .
            
$c['see_mod'] . '\', `c_stats_cache` = \'' $c['stats_cache'] . '\',`c_desapprove_post` = \'' .
            
$c['desapprove_post'] . '\', `c_allow_edad` = \'' $c['edad'] . '\', `c_max_posts` = \'' .
            
$c['max_posts'] . '\', `c_max_com` = \'' $c['max_com'] . '\', `c_max_nots` = \'' .
            
$c['max_nots'] . '\', `c_max_acts` = \'' $c['max_acts'] . '\', `c_allow_sump` = \'' .
            
$c['sump'] . '\', `c_newr_type` = \'' $c['newr'] . '\', `c_allow_firma` = \'' .
            
$c['firma'] . '\', `c_allow_upload` = \'' $c['upload'] . '\', `c_allow_portal` = \'' .
            
$c['portal'] . '\', `c_allow_live` = \'' $c['live'] . '\', `offline` = \'' $c['offline'] .
            
'\', `offline_message` = \'' $c['offline_message'] . '\', `pkey` = \'' $c['pkey'] . '\', `skey` = \'' $c['skey'] . '\' WHERE `tscript_id` = \'1\''))
            return 
true;
        else
            exit( 
show_error('Error al ejecutar la consulta de la l&iacute;nea '.__LINE__.' de '.__FILE__.'.''db') );
    } 

y la reemplazamos por
 
public function saveConfig() {
      global 
$tsCore;
      
/**
       * Unimos todos los parametros y 
       * quitamos el $_POST["save"] con array_slice()
       * @link Registrate o inicia tu sesión para ver este contenido
       * con el -1 se quita el $_POST["save"]
      */
      
$columnas $tsCore->getIUParray_slice($_POST0, -1) );
      if (
db_exec([__FILE____LINE__], "query""UPDATE w_configuracion SET {$columnas} WHERE tscript_id = 1")) return true;
      else exit( 
show_error('Error al ejecutar la consulta de la l&iacute;nea '.__LINE__.' de '.__FILE__.'.''Base de datos') );
   } 

Ahora en el caso que tengan que incluir por ejemplo el "Debes agradecer para ver el contenido...", ya que ese campo se tiene que codificar a JSON...y pensarán, como lo hago es simple..

Se pregunta si existe el parámetro con dicho nombre como por ejemplo isset($_POST['el_nombre']), como el nombre que necesitamos es 'providers' se hace lo siguiente, arriba de $columnas se agrega la condicional.
 
# Consultamos si existe, tenemos que poner el nombre
      
if(isset($_POST["providers"])):
         
# Lo que va a hacer es reemplazar el parametro por este nuevo
         /**
          * @link Registrate o inicia tu sesión para ver este contenido
         */
         
$_POST["providers"] = json_encode(explode(', '$_POST["providers"]), JSON_FORCE_OBJECT);
      endif; 

y eso sería básicamente todo, espero haberme explicado bien.
Responder


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)