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

MrDioamDev last won the day on Diciembre 1 2017

MrDioamDev had the most liked content!

Reputación en la Comunidad

241 Honorado

Sobre MrDioamDev

  • Rango
    NewbieProgrammer
  • Cumpleaños Diciembre 31

Métodos de contacto

  • Sitio web
    http://mrdioamdev.blogspot.com

Información de perfil

  • Sexo
    Masculino
  • Localización
    Walker City
  • Intereses
    Programming for newbies

Visitantes recientes en el perfil

4559 visitas al perfil
  1. Captchas caidos

    https://www.phpost.net/foro/topic/30143-mod-no-captcha-recaptcha-para-el-registro/ Solución ahora que no tienes programador
  2. https://mrdioamdev.github.io/risus2/#whatis
  3. 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
  4. https://www.origin.com/mex/es-es/store/free-games/on-the-house
  5. https://freetrial.ubisoft.com/promotions/world_in_conflict/12/
  6. Phpost tiembla tras la salida de S.P.

    Re-subido
  7. Es genial este juego, lo bajaré! Gracias :3. P.D: Que le dió a Ubisoft por regalar sus juegos? xd
  8. 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/
  9. [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
  10. 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!
  11. 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:
  12. 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!
  13. 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!
  14. 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
×