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

Search the Community

Showing results for tags 'css'.



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 2 results

  1. Hola a todos esto lo pueden aplicar si lo desean, es una modificación completa del mydialog que trae en tema/js/acciones.js, es bastante "viejo"(por decirlo de alguna forma), lo que hice fue quitar el código que tenía y que no hacía nada, mejore la parte del footer del modal al agregar los botones, ahora se puede entender mejor... Algunas capturas de como va a quedar... (Esto puede llegar a cambiar si es que exista un elemento css que modifique el existente) El modal es sus 3 versiones "Default", "Pequeño" y "Grande" Modal alerta Modal reintentar y error Bueno, a lo que vinieron jajaja 1 - Buscan en js/acciones.js var mydialog = { ... TODO EL CODIGO .. } document.onkeydown = function(e){ key = (e==null)?event.keyCode:e.which; if(key == 27) mydialog.close(); }; y lo reemplazan por /* MyDialog 1.0 */ var mydialog = new function() { // Opciones por defecto this.options = { fixed: true, size: '' }, this.close_button = true, this.mask_close = true, this.class_aux = '', // Generamos la plantilla this.template = `<div id="dialog"> <div id="title"></div> <div id="cuerpo"> <div id="procesando"><div id="mensaje"></div></div> <div id="modalBody"></div> </div> <div id="buttons"></div> </div>`, // Iniciamos this.show = () => { // Agregamos al body $("#mydialog").html(this.template); // Agregamos clases, si contiene if(!empty(this.class_aux) || !empty(this.options.size)) { $('#mydialog').addClass(this.class_aux + ' ' + this.options.size) } // Opciones de la mascara $("#mydialog").prepend('<div id="mask"></div>') if(this.mask_close) $("#mydialog > #mask").click(() => this.close()) // Agregamos los extras if(this.options.fixed) $("body").attr("modal-open", true) $('#mydialog #dialog').fadeIn('fast'); // Botón cerrar if(this.close_button) { $('#mydialog #dialog').append('<span class="close_dialog" onclick="mydialog.close()">&times;</span>'); } }, this.close = () => { $('#mydialog #dialog, #mydialog #mask').fadeOut('fast', () => $(this).remove()); if(this.options.fixed) $("body").removeAttr("modal-open") this.procesando_fin(); }, this.center = () => { var centrado = $("#dialog"); centrado.css({ 'left': Math.round($(window).width() / 2) - Math.round(centrado.width() / 2), 'top': Math.round($(window).height() / 2) - Math.round(centrado.height() / 2) }) }, this.title = string => $("#title").html(string) this.body = string => $("#modalBody").html(string), this.buttons = (all, display1, val1, action1, enabled1, focus1, display2, val2, action2, enabled2, focus2) => { var buttons_add = $("#buttons") // Con este mostramos los botones if(all === true) { // Accion close" var close = 'mydialog.close()' if(action1 === 'close') action1 = close; if(action2 === 'close' || !val2) action2 = close; if(!val2) { val2 = 'Cancelar'; enabled2 = true; } // Mostramos boton 1 if(display1) buttons_add.append(`<input type="button" class="mBtn btnOk" onclick="${action1}" value="${val1}"` + (enabled1 ? '' : ' disabled') + `>`) // Mostramos boton 2 if(display2) buttons_add.append(`<input type="button" class="mBtn btnCancel" onclick="${action2}" value="${val2}"` + (enabled2 ? '' : ' disabled') + `>`) // Enfocamos if(focus1) $('#mydialog #buttons .mBtn.btnOk').focus(); else if(focus2) $('#mydialog #buttons .mBtn.btnCancel').focus(); } else buttons_add.remove() }, this.alert = (title, body, reload) => { this.class_aux = 'modal-alert' this.close_button = false this.show(); this.title(title); this.body(body); this.buttons(true, true, 'Aceptar', 'mydialog.close();' + (reload ? 'location.reload();' : ''), true, true, false); this.center(); }, this.error_500 = fun_reintentar => { mydialog.procesando_inicio('Procesando...', 'Reintentando'); setTimeout(() => { mydialog.procesando_fin(); mydialog.show(); mydialog.title('Error'); mydialog.body('Error al intentar procesar lo solicitado'); mydialog.buttons(true, true, 'Reintentar', 'mydialog.close();'+fun_reintentar, true, true, true, 'Cancelar', 'close', true, false); mydialog.center(); }, 2000); }, this.procesando_inicio = (value, title) => { if(!this.is_show){ this.show(); this.title(title); this.buttons(false); this.center(); } $('#mydialog #procesando #mensaje').html('<img src="'+global_data.img+'images/loading_bar.gif" />'); $('#mydialog #procesando').fadeIn('fast'); }, this.procesando_fin = () => $('#mydialog #procesando').fadeOut('fast') } document.onkeydown = function(e){ key = (e==null)?event.keyCode:e.which; if(key == 27) mydialog.close(); }; 2 - En estilo.css buscan todos los #mask, #mydialog que existan y lo borran, ya que puede interferir con el nuevo estilo... Pero si quieren evitarlo pueden incluirlo directamente en extras.css o phpost.css body[modal-open=true] { overflow: hidden; } #mydialog #mask { width: 100%; height: 100vh; position: fixed; top: 0; left: 0; z-index: 1; background-color: rgba(50, 50, 50, .7); } #mydialog #dialog { --radius: 0.375rem; --shadow: 0 0 .5rem rgba(49, 49, 49, .3); --bordermodal: 1px solid rgba(150, 150, 150, .3); background-color: var(--base-color-body); color: var(--base-color-texto); border: var(--bordermodal); z-index: 99; position: fixed; width: 560px; box-shadow: var(--shadow); border-radius: var(--radius)!important; } #mydialog.small #dialog { width: 300px; } #mydialog.large #dialog { width: 700px; } #mydialog #dialog .close_dialog { --whlh: 1.2rem; position: absolute; top: 0.76rem; right: 0.66rem; display: grid; width: var(--whlh); height: var(--whlh); color: white; background-color: red; place-items: center; line-height: 1rem; font-size: var(--whlh); cursor: pointer; border-radius: .32rem; } #mydialog #dialog #title { display: block; padding: 0.82rem 1rem; font-weight: 600; border-bottom: var(--bordermodal); position: relative; } #mydialog #dialog #mensaje img { position: relative; margin: 1rem auto; display: block; } #mydialog #dialog #modalBody { padding: 1rem; max-height: 320px; overflow-y: auto; } #mydialog #dialog #buttons { display: flex; justify-content: space-around; align-items: center; padding: .654rem 0; border-top: var(--bordermodal); width: 100%; } #mydialog #dialog #buttons .mBtn { padding: .6rem 1.4rem; } #mydialog.modal-alert #dialog #title, #mydialog.modal-alert #dialog #buttons { border: none; padding: 1rem; } #mydialog.modal-alert #dialog #modalBody { padding: 0.4rem 1rem; } #mydialog.modal-alert #dialog #buttons { display: block; text-align: right; } Nota: Para activar el modal "pequeño" o "grande" deben buscar el modal que quieren modificar y buscan mydialog.show(true); y arriba agregan mydialog.options = { size: 'tipo del modal' // Tipos: small o large } Eso sería todo!
  2. Este "mod" es dual ya que tiene el login y registro, esta realizado de forma que al ingresar a al sitio tengas que registrarte o loguearte de forma obligatoria...una vista previa de como quedará Bueno comencemos 1 - En header.php buscamos define('TS_TEMA', $tsTema); y debajo agregamos # El tipo de inicio define('INICIO_DUAL', TRUE); 2 - Buscamos en index.php // Checamos... if($tsCore->settings['c_allow_portal'] == 1 && $tsUser->is_member == true && $_GET['do'] == 'portal') { // Portal/mi include('inc/php/portal.php'); } else { // Home include('inc/php/posts.php'); } y la reemplazamos por /** * Dependiendo de la configuración * Solo aplicará el dual si ambos son "TRUE" */ if(INICIO_DUAL AND !$tsUser->is_member) include 'inc/php/dual.php'; else { // Checamos... if(intval($tsCore->settings['c_allow_portal']) == 1 && $tsUser->is_member == true && $_GET['do'] == 'portal') { // Portal/mi include('inc/php/portal.php'); } else { // Home include('inc/php/posts.php'); } } 3 - Descargan los archivos y los ponen en las rutas correspondientes * dual.php en inc/php/ * dual.css en tema/css/ * dual.js en tema/js/ * t.dual.tpl en tema/templates/ 4 - Ir a inc/class/c.registro.php y buscan $tsData = array( 'user_nick' => $tsCore->parseBadWords($_POST['nick']), 'user_password' => $tsCore->parseBadWords($_POST['password']), 'user_email' => $_POST['email'], 'user_dia' => $_POST['dia'], 'user_mes' => $_POST['mes'], 'user_anio' => $_POST['anio'], 'user_sexo' => $_POST['sexo'] == 'f' ? '0' : 1, 'user_pais' => strtoupper($_POST['pais']), 'user_estado' => $_POST['estado'], 'user_terminos' => $_POST['terminos'], 'user_captcha' => $_POST['g-recaptcha-response'], 'user_registro' => time(), ); y la reemplazan por $tsData = array( 'user_nick' => $tsCore->parseBadWords($_POST['nick']), 'user_password' => $tsCore->parseBadWords($_POST['password']), 'user_email' => $_POST['email'], 'user_sexo' => $_POST['sexo'] == 'f' ? '0' : 1, 'user_terminos' => $_POST['terminos'], 'user_captcha' => $_POST['response'], 'user_registro' => time(), ); un poco más abajo buscan /** reCAPTCHA **/ $recaptcha = 'https://www.google.com/recaptcha/api/siteverify?secret=' . $tsCore->settings['skey'] . '&response=' . $tsData['user_captcha'] . '&remoteip=' . $tsCore->getIP(); // Obtener respuesta $response = file_get_contents($recaptcha); // Extraer resultado $ext1 = explode('"success":', $response); $ext2 = explode(',', $ext1[1]); // Comprobar resultado $valid = trim($ext2[0]); // Devolver respuesta si es incorrecta if ($valid == 'false') { return 'recaptcha: No hemos podido validar tu humanidad'; } y la reemplazan por /** * Comprobamos el recaptcha v3 */ $response = $tsCore->reCaptcha($tsData['user_captcha']); if (!$response) return 'recaptcha: No hemos podido validar tu humanidad'; más abajo buscamos // INSERTAMOS EL PERFIL db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `u_perfil` (`user_id`, `user_dia`, `user_mes`, `user_ano`, `user_pais`, `user_estado`, `user_sexo`) VALUES (\''.(int)$tsData['user_id'].'\', \''.(int)$tsData['user_dia'].'\', \''.(int)$tsData['user_mes'].'\', \''.(int)$tsData['user_anio'].'\', \''.$tsCore->setSecure($tsData['user_pais']).'\', \''.$tsCore->setSecure($tsData['user_estado']).'\', \''.(int)$tsData['user_sexo'].'\')'); db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `u_portal` (`user_id`) VALUES (\''.$tsData['user_id'].'\')'); y la reemplazamos por db_exec([__FILE__, __LINE__], "query", "INSERT INTO u_perfil (user_id, p_avatar, user_sexo) VALUES({$tsData['user_id']}, 1, {$tsData['user_sexo']})"); db_exec([__FILE__, __LINE__], "query", "INSERT INTO u_portal (user_id) VALUES({$tsData['user_id']})"); # Generamos automaticamente un avatar $avatar = "https://ui-avatars.com/api/?name=$1&background=random&size=160&font-size=0.60&bold=true&length=2"; $copy = "../../files/avatar/$2_$3.jpg"; $sizes = [50, 120]; foreach ($sizes as $size) { copy( str_replace('$1', $tsData['user_nick'], $avatar), str_replace(['$2', '$3'], [$tsData['user_id'], $size], $copy) ) } 5 - Luego en inc/class/c.core.php buscamos /* getIP */ function getIP(){ y arriba agregamos # Función para comprobar reCaptcha v3 public function reCaptcha(string $publico = '') { $http = http_build_query([ 'secret' => $this->settings["skey"], 'response' => $publico, 'remoteip' => $this->getIP() ]); $init = curl_init(); curl_setopt($init, CURLOPT_URL, "https://www.google.com/recaptcha/api/siteverify"); curl_setopt($init, CURLOPT_POST, 1); curl_setopt($init, CURLOPT_POSTFIELDS, $http); curl_setopt($init, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($init); curl_close($init); return json_decode($response, true); } Y eso sería todo, espero no olvidarme de nada! Cualquier problema o duda comenten!
×