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

MrDioamDev

Editor
  • Contenido

    685
  • Mensajes en Chat

    542
  • Registrado

  • Última Visita

  • Days Won

    39

Todo el contenido de MrDioamDev

  1. Hola a todos compadres, bienvenidos a pistolas fritas a no no es cierto )? Nota: no estoy seguro si esto me pasaba a mi solamente, o si el fix ya esta publicado, si es asi, me avisan. ¡Leer mas abajo! Hoy revisando el theme a ver que se me ocurría hacer con él, me encontre que el selector del home no marcaba si estaba seleccionada la categoría. SOLUCIÓN: Buscamos en sections/head_categorias.tpl esto: <option value="{$c.c_seo}" {if $tsCategoria == '$c.c_seo'}selected="selected"{/if}>{$c.c_nombre}</option> y lo cambiamos por: <option value="{$c.c_seo}" {if $tsCat == $c.c_seo}selected="selected"{/if}>{$c.c_nombre}</option> y ahora nos marcaría la categoría. gracias y nos vemos P.D: ME DI CUENTA QUE NO MARCA LA CATEGORÍA NI EL LA DEMO DEL SCRIPT (VER)
  2. Captchas caidos

    https://www.phpost.net/foro/topic/30143-mod-no-captcha-recaptcha-para-el-registro/ Solución ahora que no tienes programador
  3. https://mrdioamdev.github.io/risus2/#whatis
  4. Hola a todos. Desde ahora concentraremos el poder del script en Github! Para publicar vuestras recomendaciónes o sugerencias: https://github.com/MrDioamDev/risus2/pulls Para publicar vuestros bugs o problemas: https://github.com/MrDioamDev/risus2/issues Para descargar la última release del script: https://github.com/MrDioamDev/risus2/releases/latest Para publicar/descargar gratis o vender modificaciones y temas: https://mrdioamdev.github.io/risus2/shop.html Calendario: https://mrdioamdev.github.io/risus2/calendar.html Blog: https://mrdioamdev.github.io/risus2/blog.html Wiki para encontrar información y demás cosas del script: https://github.com/MrDioamDev/risus2/wiki Nota: Se seguirá respondiendo cualquier mensaje que se publique abajo
  5. https://www.origin.com/mex/es-es/store/free-games/on-the-house
  6. https://freetrial.ubisoft.com/promotions/world_in_conflict/12/
  7. Hola a todos, hoy les traigo este mini-mod que es para mostrar los modos del perfil mediante la url. Esto es muy parecido al sistema de T!, por ejemplo si vamos a : http://MI_WEB/perfil/USUARIO/posts/ Nos llevará a los posts. Esto se basa en los nombres de T! así que bueno.. Instalación: 1.- Nos vamos a .htaccess y buscamos: #PERFIL RewriteRule ^perfil/([A-Za-z0-9_-]+)$ inc/php/perfil.php?user=$1 [QSA,L] RewriteRule ^perfil/([A-Za-z0-9_-]+)/$ inc/php/perfil.php?user=$1 [QSA,L] RewriteRule ^perfil/([A-Za-z0-9_-]+)/([0-9]+)$ inc/php/perfil.php?user=$1&pid=$2 [QSA,L] 2.- Lo cambiamos por: #PERFIL RewriteRule ^perfil/([A-Za-z0-9_-]+)$ inc/php/perfil.php?user=$1 [QSA,L] RewriteRule ^perfil/([A-Za-z0-9_-]+)/$ inc/php/perfil.php?user=$1 [QSA,L] RewriteRule ^perfil/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/$ inc/php/perfil.php?user=$1&mode=$2 [QSA,L] RewriteRule ^perfil/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)$ inc/php/perfil.php?user=$1&mode=$2 [QSA,L] RewriteRule ^perfil/([A-Za-z0-9_-]+)/([0-9]+)$ inc/php/perfil.php?user=$1&pid=$2 [QSA,L] 3.- Vamos a perfil.php y buscamos }else{ $smarty->assign("tsMuro",$tsMuro->getWall($usuario['user_id'])); $smarty->assign("tsType","wall"); } } 4.- Y agregamos abajo: //MODOS DEL PERFIL //CREADO POR MRDIOAMDEV $mode = $_GET['mode']; if($mode == 'actividad' || $mode == 'wall' || $mode == 'info' || $mode == 'posts' || $mode == 'seguidores' || $mode == 'siguiendo' || $mode == 'medallas') { $modeEnable = true; $tsMode = $mode; $smarty->assign("tsMode",$mode); } 4.5 - Buscamos en el mismo archivo: $tsTitle = 'Perfil de '.$tsInfo['nick'].' - '.$tsTitle; 4.9 - Y lo cambiamos por: if($modeEnable == true) { $tsTitle = ucfirst($mode).' de '.$tsInfo['nick'].' - '.$tsTitle; } else { $tsTitle = 'Perfil de '.$tsInfo['nick'].' - '.$tsTitle; } 5.- Por último, vamos al t.perfil.tpl y buscamos: {include file='sections/main_header.tpl'} 6.- Y agregamos abajo: {if $tsMode}<script type="text/javascript">{literal}$(document).ready(function(){ perfil.load_tab('{/literal}{$tsMode}{literal}', this); }); {/literal}</script>{/if} Y eso sería todo. Ojalá les guste y les sirva
  8. Phpost tiembla tras la salida de S.P.

    Re-subido
  9. Phpost tiembla tras la salida de S.P.

    Bueno, tenía planeado enseñarles este vídeo cuando sacaran el "renovado" Spirate, pero la verdad, quiero publicarlo ahora porque no tiene perdida.
  10. Es genial este juego, lo bajaré! Gracias :3. P.D: Que le dió a Ubisoft por regalar sus juegos? xd
  11. Watch Dogs

    Señor ubisoft está dando una copia permanente de Watch dogs desde el 18 DE DICIEMBRE DE 2017 11:00 hasta 23 DE DICIEMBRE DE 2017 7:00 https://freetrial.ubisoft.com/promotions/watch-dogs-1/8/
  12. Hola a todos, hoy les traigo este mod para tener notificaciones de escritorio en vuestra web. Notas: -Las imágenes y títulos como (Nueva Notificación -- Nuevo Mensaje -- Nuevo Aviso) se pueden cambiar desde los archivos que se suben a modules. -El mod no funciona si el usuario no esta logeado. -Si hay nuevas versiones, se les avisará a los administradores. Futuras versiones: -La nueva version permitirá al usuario manejar si quiere ver las notificaciones, avisos o los mensajes desde /cuenta/. -La parte de notificaciones está un poco bugeada ya que al cargar la notificación y actualizar la pagina se marcan todas como leídas, eso vendrá parcheado en la próxima version. -Se está solucionando el problema de los textos en UTF-8, en próximas versiones vendrá parcheado. -Se está solucionando el problema del bucle infinito al actualizar la página. -Se agregaran los avisos también. Todo esto vendrá corregido y agregado en la version 1.0, por falta de tiempo, no pude terminarlo, mis disculpas XD. Si no saben que es/son aquí les dejo esto: Bien, después de todo esto, vamos a la instalación. Vamos al header.php (gracias @MagicInventor) y buscamos: // Nofiticaciones $smarty->assign('tsNots',$tsMonitor->notificaciones); y abajo pegamos: //Mod Notificaciones De Escritorio para NOTS $notificaciones = $tsMonitor->getNotificaciones(); $smarty->assign("tsDeskNotsNots",$notificaciones['data']); //Mod Notificaciones de Escritorio para MPS $smarty->assign("tsDeskNotsMPs",$tsMP->getMensajes(1, false, 'monitor')); Vamos al main_footer.tpl y pegamos antes de: </body> </html> Esto: {if $tsUser->is_member} {include file='modules/m.desknots_nots.tpl'} {include file='modules/m.desknots_mps.tpl'} {include file='modules/m.desknots_checking.tpl'} {/if} Ahora subimos estos archivos a themes/TU_TEMA/templates/modules/: [Descarga, capturas y demo] Y eso sería todo.
  13. Hola a todos, hoy les traigo esta pequeña modificación, la cual hará que en vez de que se reproduzca un archivo .SWF al momento de llegar una notificación o mensaje, se coloque un archivo .MP3 en un reproductor HTML5. Resulta que el flash está quedando cada vez más obsoleto, entonces la mayoría de navegadores ya no lo admiten o hay que permitirlo manualmente en las paginas. Instalación: 1.- Van al archivo LIVE.JS (que se encuentra en la carpeta JS dentro de vuestro theme) y buscan esto: if(live.status['sound'] == 'ON'){ $('#swf').html('<embed width="1px" height="1px" wmode="transparent" allowscriptaccess="always" quality="high" bgcolor="#ffffff" src="' + global_data.url + '/inc/ext/' + sound_type + '.swf" type="application/x-shockwave-flash">'); } 2.- Lo cambian por esto: if(live.status['sound'] == 'ON'){ $('#htmlplayer').html('<audio autoplay><source src="' + global_data.url + '/inc/ext/' + sound_type + '.mp3" type="audio/mpeg"></audio>'); } 3.-Van al archivo MAIN_HEADER.TPL y buscan esto: <div id="swf"></div> 4.-Y agregan abajo o cambian por esto: <div id="htmlplayer"></div> 5.-Suben estos archivos a /INC/EXT/ ARCHIVOS Y eso sería todo, no tengo demo pero si alguien se lo quiere instalar, deje su web abajito. Gracias
  14. [Smarty-Plugin] NOBBcode

    Hola a todos. Hoy les traigo este plugin que diseñe para Smarty el cual eliminará cualquier bbcode que aparezca dentro de los archivos .tpls en sus variables. Ejemplo si tenemos la variable {$post_body} Podría decirnos: [align=center]Hola a todos bienvenidos a (..)[/align] Pero si le agregamos "|nobbcode" a la variable: {$post_body|nobbcode} Podría decirnos: Hola a todos bienvenidos a (..) En fin, solo hace un preg_match que elimina cualquier contenido de las [ ] y ellas mismas. Acá les dejo el código y descarga (EL ARCHIVO LO COLOCAN EN /INC/SMARTY/PLUGINS/): DESCARGAR
  15. Te invito a probar mi proyecto, con los archivos .JS totalmente actualizados a la última versión, sin migrador, Jquery Nativo! ¡Hola de nuevo! Hoy les voy a presentar algo "muy" novedoso. Esto les ayudará a crear sus themes con múltiples frameworks y también para el desarrollo de sus sitios webs. El otro día, me dí cuenta de que el archivo "jquery.plugins.js" está adaptado para una versión muy antigua de Jquery. Por eso se me ocurrió probar la versión 3.0.0 + Jquery Migrate (un migrador para versiones anteriores de Jquery). Y si... ¡FUNCIONO!. Tal como lo dice en la página en GitHub, solo tenemos que colocar los scripts y eso sería todo. Esto va siempre arriba de los "Jquery (...) .js" que vienen por defecto. <script src="https://code.jquery.com/jquery-3.0.0.js"></script> <script src="https://code.jquery.com/jquery-migrate-3.0.0.js"></script> Click aquí para una versión más actualizada del código. Tienen que mantener el "Jquery.min.js" y el "jquery.plugins.js" si no, no funcionara ni el migrador, ni el jquery, ni el Script. Un ejemplo de como queda. Ojala lo prueben y me cuenten como les fue.
  16. Hola a todos, en colaboración con @bits4me les traemos el actualizador de Smarty 3 automático para sus paginas webs con Risus 1.2.7 y 1.2.6. Esta vez con la versión final, con pequeños cambios y mejoras! Solo lo suben a su página web por medio de ftp, admin de archivos, etc. Y lo descomprimen. Luego de eso, se van a su web y le agregan a la dirección /updater/index.php Ejemplo: Si mi web se ingresa a http://phpost.net entonces para entrar al actualizador sería http://phpost.net/updater/index.php así de simple. Luego de eso solo le dan a comenzar, elijen su versión de Smarty y el proceso será automático, les aviso que se tarda 1 minuto como máximo, así que no vayan a cancelar o reiniciar la pagina. Si tienen una carpeta /updater/ antes de subir la de este mod, borrenla. Espero que me mencionen recomendaciones o sugerencias, si alguna vez llego a publicar otra versión, es posible que sean incluidas. [DESCARGAR] Cambios: Testeado con: Php 5.4, 7.0 y Risus 1.2.7. Los que tengan versiones anteriores se les avisará por el mismo mod mediante el sistema de feed. Captura:
  17. Hola gente, hoy les traigo esta pequeña modificación para el RChat estilo Cbox por Rhuan. Con esta pequeña modificación, podrán tener su chat en el home (posts). Suben el archivo a los modules de vuestro tema. [Click Aqui para descargar] Ahora solo tienen que agregar esto a su t.home.tpl Arriba de <div id="izquierda"> agregan {include file='modules/m.home_cboxchat.tpl'}
  18. Hola. Con respecto a tu consulta, lo puedes hacer fácilmente con condicionales como estás: {if $tsInfo.user_baneado} Si el usuario no está baneado {else} En el caso de que este {/if} //Cerramos condicinal {if $tsInfo.user_activo} Si el usuario está activo. {else} Si el usuario no está activo. {/if} Ahora, la función va a seguir funcionando en los archivos .php (es fácil cambiarlo pero ando corto de tiempo), pero no en los templates (.tpl), así que alguien de igual manera bastante inteligente podría invocar la función. Saludos!
  19. Hola a todos. Pues este es un Tri-plemento (tres complementos en uno XD), el cual hará que un usuario que sea suspendido o no esté activo no afecte en los números de gente registrada y que de igual manera se muestre en usuarios y se pueda ver su perfil. Ustedes eligen lo que quieran, a su gusto... Para mostrar el perfil en el caso de que la cuenta esté baneada (suspendida)/inactiva. van a perfil.php y buscan: if(empty($usuario['user_id']) || ($usuario['user_activo'] != 1 && !$tsUser->permisos['movcud'] && !$tsUser->is_admod) || ($usuario['user_baneado'] != 0 && !$tsUser->permisos['movcus'] && !$tsUser->is_admod)) { $tsPage = 'aviso'; $tsAjax = 0; $smarty->assign("tsAviso",array('titulo' => 'Opps!', 'mensaje' => (empty($usuario['user_id']) ? 'El usuario no existe' : 'La cuenta de '.$usuario['user_name'].' se encuentra inhabilitada' ), 'but' => 'Ir a p&aacute;gina principal')); y lo cambian por: if(empty($usuario['user_id'])) { $tsPage = 'aviso'; $tsAjax = 0; $smarty->assign("tsAviso",array('titulo' => 'Opps!', 'mensaje' => ('El usuario no existe'), 'but' => 'Ir a página principal')); y eso sería todo para el perfil. No descontar usuarios para las cuentas que estén baneadas (suspendidas)/inactivas. c.tops.php buscan: $q1 = db_exec('fetch_row', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT COUNT(user_id) AS u FROM u_miembros WHERE user_activo = \'1\' && user_baneado = \'0\'')); y lo cambian por: $q1 = db_exec('fetch_row', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT COUNT(user_id) AS u FROM u_miembros')); Mostrar todos los usuarios, es decir, las cuentas que estén baneadas (suspendidas)/inactivas también se mostrarán. Esto se encuentra dentro de la función "getUsuarios()" en c.user.php buscan: // TOTAL Y PAGINAS $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT COUNT(u.user_id) AS total FROM u_miembros AS u LEFT JOIN u_perfil AS p ON u.user_id = p.user_id WHERE u.user_activo = \'1\' && u.user_baneado = \'0\' '.$w_online.' '.$w_avatar.' '.$w_sex.' '.$w_pais.' '.$w_rango); $total = db_exec('fetch_assoc', $query); $total = $total['total']; $pages = $tsCore->getPagination($total, 12); // CONSULTA $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_name, p.user_pais, p.user_sexo, p.p_avatar, p.p_mensaje, u.user_rango, u.user_puntos, u.user_comentarios, u.user_posts, u.user_lastactive, u.user_baneado, r.r_name, r.r_color, r.r_image FROM u_miembros AS u LEFT JOIN u_perfil AS p ON u.user_id = p.user_id LEFT JOIN u_rangos AS r ON r.rango_id = u.user_rango WHERE u.user_activo = \'1\' && u.user_baneado = \'0\' '.$w_online.' '.$w_avatar.' '.$w_sex.' '.$w_pais.' '.$w_rango.' ORDER BY u.user_id DESC LIMIT '.$pages['limit']); // PARA ASIGNAR SI ESTA ONLINE HACEMOS LO SIGUIENTE while($row = db_exec('fetch_assoc', $query)){ if($row['user_lastactive'] > $is_online) $row['status'] = array('t' => 'Online', 'css' => 'online'); elseif($row['user_lastactive'] > $is_inactive) $row['status'] = array('t' => 'Inactivo', 'css' => 'inactive'); else $row['status'] = array('t' => 'Offline', 'css' => 'offline'); // RANGO $row['rango'] = array('title' => $row['r_name'], 'color' => $row['r_color'], 'image' => $row['r_image']); // CARGAMOS $data[] = $row; } y lo cambian por: // TOTAL Y PAGINAS $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT COUNT(u.user_id) AS total FROM u_miembros AS u LEFT JOIN u_perfil AS p ON u.user_id = p.user_id'); $total = db_exec('fetch_assoc', $query); $total = $total['total']; $pages = $tsCore->getPagination($total, 12); // CONSULTA $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_name, p.user_pais, p.user_sexo, p.p_avatar, p.p_mensaje, u.user_rango, u.user_puntos, u.user_comentarios, u.user_posts, u.user_lastactive, u.user_baneado, r.r_name, r.r_color, r.r_image FROM u_miembros AS u LEFT JOIN u_perfil AS p ON u.user_id = p.user_id LEFT JOIN u_rangos AS r ON r.rango_id = u.user_rango ORDER BY u.user_id DESC LIMIT '.$pages['limit']); // PARA ASIGNAR SI ESTA ONLINE HACEMOS LO SIGUIENTE while($row = db_exec('fetch_assoc', $query)){ if($row['user_lastactive'] > $is_online) $row['status'] = array('t' => 'Online', 'css' => 'online'); elseif($row['user_lastactive'] > $is_inactive) $row['status'] = array('t' => 'Inactivo', 'css' => 'inactive'); else $row['status'] = array('t' => 'Offline', 'css' => 'offline'); // RANGO $row['rango'] = array('title' => $row['r_name'], 'color' => $row['r_color'], 'image' => $row['r_image']); // CARGAMOS $data[] = $row; } Gracias , espero que les guste este nuevo tipo de complemento xD
  20. Hola a todos, este post es para mostrarles en lo que he estado trabajando. He estado trabajando en Risus2, por lo tanto, algo de lo que he podido actualizar fueron los dialogs por defecto de Risus. El problema es que tuve algunos problemas de compatibilidad, para empezar hay que usar Jquery 3 para que el archivo de Bootstrap.js (4.0.0) funcione. Lo segundo, si hago eso, los: hovercard y plugins se van a la basura, así que habrá que actualizarlos también para que funcionen. Y tercero, podría usar el migrador pero con eso el mydialog, es decir, los archivos de acciones.js, no toman como funciones a los modals. Si alguien le interesa probar, aquí se los dejo: Usando Jquery 3 [SIN MIGRATOR] y Bootstrap 4.0.0-beta (la última hasta la fecha: 13/08/2017). En el archivo acciones.js buscamos: /* mydialog */ var mydialog = { is_show: false, class_aux: '', mask_close: true, close_button: false, show: function(class_aux){ if(this.is_show) return; else this.is_show = true; if($('#mydialog').html() == '') //Primera vez $('#mydialog').html('<div id="dialog"><div id="title"></div><div id="cuerpo"><div id="procesando"><div id="mensaje"></div></div><div id="modalBody"></div><div id="buttons"></div></div></div>'); if(class_aux==true) $('#mydialog').addClass(this.class_aux); else if(this.class_aux != ''){ $('#mydialog').removeClass(this.class_aux); this.class_aux = ''; } if(this.mask_close) $('#mask').click(function(){ mydialog.close() }); else $('#mask').unbind('click'); if(this.close_button) $('#mydialog #dialog').append('<span onclick="mydialog.close()">X</span>'); else $('#mydialog #dialog .close_dialog').remove(); $('#mask').css({'width':$(document).width(),'height':$(document).height(),'display':'block'}); if(jQuery.browser.msie && jQuery.browser.version < 7) //Fix IE<7 <- fack you $('#mydialog #dialog').css('position', 'absolute'); else $('#mydialog #dialog').css('position', 'fixed'); $('#mydialog #dialog').fadeIn('fast'); }, close: function(){ //Vuelve todos los parametros por default this.class_aux = ''; this.mask_close = true; this.close_button = false; this.is_show = false; $('#mask').css('display', 'none'); $('#mydialog #dialog').fadeOut('fast', function(){ $(this).remove() }); this.procesando_fin(); }, center: function(){ if($('#mydialog #dialog').height() > $(window).height()-60) $('#mydialog #dialog').css({'position':'absolute', 'top':20}); else $('#mydialog #dialog').css('top', $(window).height()/2-$('#mydialog #dialog').height()/2); $('#mydialog #dialog').css('left', $(window).width()/2-$('#mydialog #dialog').width()/2); }, title: function(title){ $('#mydialog #title').html(title); }, body: function(body, width, height){ if(!width && (jQuery.browser.opera || (jQuery.browser.msie && jQuery.browser.version<7))) width = '400px'; $('#mydialog #dialog').width(width?width:'').height(height?height:''); $('#mydialog #modalBody').html(body); }, buttons: function(display_all, btn1_display, btn1_val, btn1_action, btn1_enabled, btn1_focus, btn2_display, btn2_val, btn2_action, btn2_enabled, btn2_focus){ if(!display_all){ $('#mydialog #buttons').css('display', 'none').html(''); return; } if(btn1_action=='close') btn1_action='mydialog.close()'; if(btn2_action=='close' || !btn2_val) btn2_action='mydialog.close()'; if(!btn2_val){ btn2_val = 'Cancelar'; btn2_enabled = true; } var html = ''; if(btn1_display) html += '<input type="button" class="btn btn-success'+(btn1_enabled?'':' disabled')+'" style="display:'+(btn1_display?'inline-block':'none')+'"'+(btn1_display?' value="'+btn1_val+'"':'')+(btn1_display?' onclick="'+btn1_action+'"':'')+(btn1_enabled?'':' disabled')+' />'; if(btn2_display) html += ' <input type="button" class="btn btn-danger'+(btn1_enabled?'':' disabled')+'" style="display:'+(btn2_display?'inline-block':'none')+'"'+(btn2_display?' value="'+btn2_val+'"':'')+(btn2_display?' onclick="'+btn2_action+'"':'')+(btn2_enabled?'':' disabled')+' />'; $('#mydialog #buttons').html(html).css('display', 'inline-block'); if(btn1_focus) $('#mydialog #buttons .btn.btn-success').focus(); else if(btn2_focus) $('#mydialog #buttons .btn.btn-danger').focus(); }, buttons_enabled: function(btn1_enabled, btn2_enabled){ if($('#mydialog #buttons .btn.btn-success')) if(btn1_enabled) $('#mydialog #buttons .btn.btn-success').removeClass('disabled').removeAttr('disabled'); else $('#mydialog #buttons .btn.btn-success').addClass('disabled').attr('disabled', 'disabled'); if($('#mydialog #buttons .btn.btn-danger')) if(btn2_enabled) $('#mydialog #buttons .btn.btn-danger').removeClass('disabled').removeAttr('disabled'); else $('#mydialog #buttons .btn.btn-danger').addClass('disabled').attr('disabled', 'disabled'); }, alert: function(title, body, reload){ this.show(); this.title(title); this.body(body); this.buttons(true, true, 'Aceptar', 'mydialog.close();' + (reload ? 'location.reload();' : 'close'), true, true, false); this.center(); }, error_500: function(fun_reintentar){ setTimeout(function(){ mydialog.procesando_fin(); mydialog.show(); mydialog.title('Error'); mydialog.body(lang['error procesar']); mydialog.buttons(true, true, 'Reintentar', 'mydialog.close();'+fun_reintentar, true, true, true, 'Cancelar', 'close', true, false); mydialog.center(); }, 200); }, procesando_inicio: function(value, title){ if(!this.is_show){ this.show(); this.title(title); this.body(''); this.buttons(false, false); this.center(); } $('#mydialog #procesando #mensaje').html('<i class="fa fa-spinner fa-pulse fa-4x fa-fw"></i>'); $('#mydialog #procesando').fadeIn('fast'); }, procesando_fin: function(){ $('#mydialog #procesando').fadeOut('fast'); } }; document.onkeydown = function(e){ key = (e==null)?event.keyCode:e.which; if(key == 27) mydialog.close(); }; Y lo cambiamos por: /* MYDIALOG (USANDO BOOTSTRAP (4.0 Y 3.0) (JQUERY 3) | MOD: v0.1 ALPHA) */ /* ADAPTADO POR: MRDIOAMDEV */ var mydialog = { is_show: false, class_aux: '', close_button: false, show: function(class_aux){ //GENERAMOS LA MODAL $('#mydialog').html('<div class="modal fade" id="dialogmodalbs" role="dialog"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"> <button type="button" class="close" onclick="mydialog.close();">×</button><h4 class="modal-title"></h4></div><div class="modal-body" id="cuerpo"><div class="modalad-procesando"><div class="modalad-procesando-mensaje"></div></div><div class="modalad-modalBody"></div></div><div class="modal-footer"></div></div></div></div>'); //LA LLAMAMOS CON SU FUNCION RESPECTIVA $("#dialogmodalbs").modal(); //NI IDEA PARA QUE SERA ESTO PERO LO DEJO IGUAL XD if(class_aux==true) $('#mydialog').addClass(this.class_aux); else if(this.class_aux != ''){ $('#mydialog').removeClass(this.class_aux); this.class_aux = ''; } }, close: function(){ //CERRAR MODAL //setTimeout(function(){ $('#dialogmodalbs').modal('toggle'); //}, 200); //ELIMINARLA //setTimeout(function(){ //$("#mydialog").html(""); //}, 600); }, closefull: function(){ //CERRAR MODAL setTimeout(function(){ $('#dialogmodalbs').modal('toggle'); }, 200); //ELIMINARLA setTimeout(function(){ $("#mydialog").html(""); }, 600); }, title: function(title){ $('.modal-title').html(title); }, body: function(body, width, height){ $('.modalad-modalBody').html(body); }, buttons: function(display_all, btn1_display, btn1_val, btn1_action, btn1_enabled, btn1_focus, btn2_display, btn2_val, btn2_action, btn2_enabled, btn2_focus){ if(!display_all){ $('.modal-footer').css('display', 'none').html(''); return; } if(btn1_action=='close') btn1_action='mydialog.close()'; if(btn2_action=='close' || !btn2_val) btn2_action='mydialog.close()'; if(!btn2_val){ btn2_val = 'Cancelar'; btn2_enabled = true; } var html = ''; if(btn1_display) html += '<input type="button" class="btn btn-success'+(btn1_enabled?'':' disabled')+'" style="display:'+(btn1_display?'inline-block':'none')+'"'+(btn1_display?' value="'+btn1_val+'"':'')+(btn1_display?' onclick="'+btn1_action+'"':'')+(btn1_enabled?'':' disabled')+' />'; if(btn2_display) html += ' <input type="button" class="btn btn-danger'+(btn1_enabled?'':' disabled')+'" style="display:'+(btn2_display?'inline-block':'none')+'"'+(btn2_display?' value="'+btn2_val+'"':'')+(btn2_display?' onclick="'+btn2_action+'"':'')+(btn2_enabled?'':' disabled')+' />'; $('.modal-footer').html(html).css('display', 'inline-block'); if(btn1_focus) $('.modal-footer .btn.btn-success').focus(); else if(btn2_focus) $('.modal-footer .btn.btn-danger').focus(); }, buttons_enabled: function(btn1_enabled, btn2_enabled){ if($('.modal-footer .btn.btn-success')) if(btn1_enabled) $('.modal-footer .btn.btn-success').removeClass('disabled').removeAttr('disabled'); else $('.modal-footer .btn.btn-success').addClass('disabled').attr('disabled', 'disabled'); if($('.modal-footer .btn.btn-danger')) if(btn2_enabled) $('.modal-footer .btn.btn-danger').removeClass('disabled').removeAttr('disabled'); else $('.modal-footer .btn.btn-danger').addClass('disabled').attr('disabled', 'disabled'); }, alert: function(title, body, reload){ this.show(); this.title(title); this.body(body); this.buttons(true, true, 'Aceptar', 'mydialog.close();' + (reload ? 'location.reload();' : 'close'), true, true, false); this.center(); }, error_500: function(fun_reintentar){ setTimeout(function(){ mydialog.procesando_fin(); mydialog.show(); mydialog.title('Error'); mydialog.body(lang['error procesar']); mydialog.buttons(true, true, 'Reintentar', 'mydialog.close();'+fun_reintentar, true, true, true, 'Cancelar', 'close', true, false); mydialog.center(); }, 200); }, procesando_inicio: function(value, title){ if(!this.is_show){ this.show(); this.title(title); this.body(''); this.buttons(false, false); this.center(); } $('.modalad-procesando-mensaje').html('<div class="alert alert-info" style="width:100%;height:100%;">Procesando...</div>'); $('.modalad-procesando').fadeIn('fast'); }, procesando_fin: function(){ $('.modalad-procesando').fadeOut('fast'); } }; //CERRAR X ESC document.onkeydown = function(e){ key = (e==null)?event.keyCode:e.which; if(key == 27) //TECLA ESC Y CERRAMOS Y ELIMINAMOS DIALOG mydialog.closefull(); }; //ELIMINAR MASK ANTIGUA $( document ).ready(function() { $("#mask").remove(); }); /****** FIN MODAL ********/ Espero que puedan aportar con algo, ya que no sé que más hacerle para que funcione . Gracias!
  21. Hola a todos, en este complemento podrán mostrar en detalle la IP que estén buscando en el buscador de IP del panel de moderación. En m.mod_buscador.tpl buscan: {elseif $tsAct == 'search'} y agregan abajo: {if $tsContenido.tipo == 1} <hr class="separator" /><h2>Datos de la IP:</h2>Tu IP: {$smarty.server.REMOTE_ADDR}.<br/>Datos de la IP ({$tsContenido.contenido}):<br/> {php}/** DETALLES DE LA IP SOLICITADA | BY: MRDIOAMDEV **/ $ipfind_json_string = 'http://ipinfo.io/'.$_GET['texto'].'/json'; $ipfind_jsondata = file_get_contents($ipfind_json_string); $ipfind_obj = json_decode($ipfind_jsondata,true); if($ipfind_obj != '') { for ($i = 0; $i < count($ipfind_obj); $i++) { $ipfind_key= key($ipfind_obj); $ipfind_val= $ipfind_obj[$ipfind_key]; if ($ipfind_val<> ' ') { echo ''.$ipfind_key.' : '. $ipfind_val .' </br>'; } next($ipfind_obj); } } else { echo 'No se pudo obtener informacion de la IP solicitada para la IP '.$_GET['texto'].'<br/>'; } {/php} <small>Agradecimientos a <a href="http://ipinfo.io" target="blank">IPInfo.io</a>.</small><hr class="separator" />{/if} Captura: Ip que existe: Ip que no existe o no salen datos desde la API: Eso sería todo, espero que les guste!
  22. Hola a todos, hoy les traigo esta pequeña función para comprobar las imágenes en el caso de que existan mostrarlas y si no existen mostrar otra imagen. Aviso antes que creo que no está muy bien programada la verdad :/ En c.core.php buscan: // FUNCIÓN CONCRETA PARA CENSURAR function parseBadWords($c, $s = FALSE) { $q = result_array(db_exec(array(__FILE__, __LINE__), 'query', 'SELECT word, swop, method, type FROM w_badwords '.($s == true ? '' : ' WHERE type = \'0\''))); foreach($q AS $badword) { $c = str_ireplace((empty($badword['method']) ? $badword['word'] : $badword['word'].' '),($badword['type'] == 1 ? '<img class="qtip" title="'.$badword['word'].'" src="'.$badword['swop'].'" align="absmiddle"/>' : $badword['swop'].' '),$c); } return $c; } y pegan abajo: // FUNCIÓN CONCRETA PARA VERIFICAR IMAGENES // CREADO POR MRDIOAMDEV (https://mrdioamdev.blogspot.com) function verifImgBroke($c) { if(@getimagesize($c)) { return $c; } else { //SI NO EXISTE return ''; //ENTRE LAS COMILLAS COLOCAN LA IMAGEN QUE QUIERAN QUE APAREZCA } } Y eso sería todo, ahora por ejemplo, si quieren verificar una imagen en un archivo tpl sería así: {$tsCore->verifImgBroke('LINK DE LA IMAGEN')} O si es con variables: {$tsCore->verifImgBroke($NOMBREDELAVARIABLE)}
  23. Hola buenas, muy corto de tiempo les traigo este minimod que es para que cuando te logues no te rediriga al inicio, si no que actualice la pagina simplemente. en acciones.js buscan if (h.substring(3)=='Home') { location.href='/'; } else if (h.substr(3) == 'Cuenta') { location.href = '/cuenta/'; } else { location.reload(); } y lo cambian por: location.reload(); saludos que les sirva!
  24. Hola a todos, en colaboración con @bits4me les traemos el actualizador de Smarty 3 automático para sus paginas webs con Risus 1.2.7. Nueva versión: Pues solo lo suben a su página web por medio de ftp, admin de archivos, etc. Y lo descomprimen. Luego de eso, se van a su web y le agregan a la dirección /updater/index.php Ejemplo: Si mi web se ingresa a http://phpost.net entonces para entrar al actualizador sería http://phpost.net/updater/index.php así de simple. Luego de eso solo le dan a comenzar y el proceso será automático, les aviso que se tarda 1 minuto, así que no vayan a cancelar o reiniciar la pagina. /!\ Esta es una version beta y no es la final. Capturas: -- Le falta agregar código anti-errores, terminarlo, cambiar el diseño, pero en teoría a mi me funcionó con Php 5.4 y Risus 1.2.7. Descargar Gracias a todos, espero que me mencionen recomendaciones o sugerencias para terminarlo al 100%!
×