Buscar en La Comunidad

Showing results for tags 'mod'.



More search options

  • Search By Tags

    Añade tags separandolos por comas.
  • Search By Author

Tipo de Contenido


Foros

  • El núcleo de PHPost
    • Novedades e información
    • La taza y el café
    • Presentaciones
  • PHPost Risus
    • Actualizaciones
    • Proyectos derivados
    • Versión 1.1
    • Versión 1.2
    • Reporte de bugs
  • Zona Webmaster
    • Posicionamiento (SEO)
    • Monetización
    • Social Media
    • Programación
  • La esquina
    • Rincón del PC
    • Rincón del móvil

Calendars

No hay resultados


Encontramos 118 resultados

  1. Hoy les traigo este mini-mod a pedido de @Rengo, lo que hace es integrar los comentarios de Facebook a nuestro sitio. Características: Moderar comentarios Si es visitante se mostraran los de FB por defecto En m.post_comments.tpl agregar arriba de todo: <script type="text/javascript"> {literal} $(document).ready(function(){ $("#comentarios_web").on( "click", function() { $('#post-comentarios_fb').hide(); $('#post-comentarios').show(); }); $("#comentarios_fb").on( "click", function() { $('#post-comentarios_fb').show(); $('#post-comentarios').hide(); }); }); {/literal} </script> <div class="commentsbas"> <button type="button" id="comentarios_web" class="basbutton">Comentarios {$tsConfig.titulo} <span >{$tsPost.post_comments}</span></button> <button type="button" id="comentarios_fb" class="basbutton">Comentarios Facebook <span class="fb-comments-count" data-href="{$tsConfig.url}/posts/{$tsPost.categoria.c_seo}/{$tsPost.post_id}/{$tsPost.post_title|seo}.html"></span></button> <div id="post-comentarios_fb" {if $tsUser->is_member}style="display:none"{/if}> <div class="fb-comments" data-href="{$tsConfig.url}/posts/{$tsPost.categoria.c_seo}/{$tsPost.post_id}/{$tsPost.post_title|seo}.html" data-numposts="10" data-width="840" data-order-by="reverse_time" data-colorscheme="light"></div> </div> </div> Abajo busca: <div id="post-comentarios"> Y lo remplazas por: <div id="post-comentarios" {if !$tsUser->is_member}style="display:none"{/if}> En una hoja de estilos (como estilo.css) agrega al final: .commentsbas { float: right; width: 835px; overflow: hidden; margin-top: 15px; } .basbutton { float: left; width: 50%; color: #FFF; display: block; font-weight: bold; line-height: 1.2; padding: 14px; text-align: center; cursor: pointer; overflow: hidden; position: relative; border-radius: 0; border-right: 0; border-bottom: 0; border-left: 0; } #comentarios_web { border-top: 6px solid #197FB3; background: #1593FF; } #comentarios_fb { border-top: 6px solid #555; background: #3B5998; } .basbutton span { border-radius: 3px; color: #ddd; display: inline; font-size: 0.9em; padding: 6px 11px; position: relative; } #comentarios_web span { background-color: #0D79D5; } #comentarios_fb span { background-color: #5872a7; padding: 6px 6px!important; } Diseñado para el tema default, es posible que tengan que editar un poco de css Para moderar los comentarios existen dos formas, elije la que sea de tu agrado. Forma 1 (Meta tag): En main_header.tpl dentro de <head> agregaremos: <meta property="fb:admins" content="TU_FACEBOOK_USER_ID"/> Remplazamos TU_FACEBOOK_USER_ID por nuestro id de usuario en facebook, el id yo lo saco del código fuente del perfil pero existen paginas como esta que solo introduces la url del perfil y te da el id. Esta etiqueta se puede repetir cuantas veces quieran y agregar a todo su staff... Ejem: <meta property="fb:admins" content="TU_FACEBOOK_USER_ID_admin"/> <meta property="fb:admins" content="TU_FACEBOOK_USER_ID_mod"/> etc... Forma 2 (Facebook App): Vamos a Iniciar sesión en Facebook | Facebook y creamos una nueva app para nuestro sitio (si ya tienes una creada solo necesitaremos el ID de la app) En main_header.tpl dentro de <head> agregaremos: <meta property="fb:app_id" content="TU_APP_ID" /> Y remplazamos TU_APP_ID por tu ID de tu app. Capturas: Demo Hasta otro aporte
  2. ACLARACION: este mod no es mio. Solo lo adapte a la nueva versión. Agradecimiento a los autores al final del tema. Hola amigos. Hoy no vengo con una pregunta . Vengo para mostrarles como instalar el mod de referidos + puntos por referido. Lo que hace este mod es que la gente pueda promocionar tu pagina para ganar puntos a cambio. La manera en que funciona es así: Yo soy un usuario de tu web y quiero puntos gratis. Publicito tu web y les pido a la gente que pongan mi nombre en el campo de referidos cuando se van a registrar. Una vez que se registran a mi se me dan puntos automáticamente. Bueno comencemos con la instalación: 1) Abrimos c.registro.php .Que se encuentra en inc/class, y despues de: } else $valid = '0: Faltan datos y no se puede procesar tu solicitud.'; // retornar valor return $valid; } Agregamos: /** * @name referidos by tutan-kabron * @access public * @param * @return string */ public function checkUserEmail2(){ global $tsCore; // Variables $referido = strtolower($_POST['referido']); $which = empty($referido) ? 'referido' : 'referido'; // MENSAJE $valid = '1: El '.$which.' no existe .'; // DEFAULT // if(!empty($referido)){ $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT `user_id` FROM `u_miembros` WHERE LOWER(user_name) = \''.$tsCore->setSecure($referido).'\' LIMIT 1'); if(db_exec('num_rows', $query) > 0) $valid = '0: El '.$which.' si existe.'; // EXISTE } else $valid = '0: Este Campo no es obligatorio.'; // retornar valor return $valid; } 2) En el mismo archivo c.registro.php buscamos mas abajo: function registerUser(){ global $tsCore, $tsUser; // DATOS NECESARIOS Y debajo de eso agregamos: $referido=$_POST['referido']; if(empty($referido)){ $referido='1'; }else{ $referido= $tsCore->setSecure($_POST['referido']); } 3) En el mismo archivo c.registro.php buscamos un poquito mas abajo: 'user_email' => $_POST['email'], Y debajo de eso agregamos: 'user_referido' => $referido, 4) Mas abajo en el mismo archivo c.registro.php buscamos: // MENSAJE PARA DAR LA BIENVENIDA BIENVENIDA Antes de eso agregamos: if($referido != '1'){ db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_referidos = user_referidos + 1 WHERE user_name = \''.$tsData['user_referido'].'\''); db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `referidos` (`user_referido`, `user_name`, `fecha`) VALUES (\''.$tsData['user_referido'].'\', \''.$tsData['user_nick'].'\', \''.time().'\')'); } 5) Abrimos ajax.registro.php que se encuentra en la carpeta inc/php/ajax y antes de: case 'registro-geo': Agregamos: case 'registro-check-referido': //<--- echo $tsReg->checkUserEmail2(); //---> break; 6) En el mismo archivo arriba buscamos: 'registro-check-nick' => array('n' => 1, 'p' => ''), Y debajo de eso agregamos: 'registro-check-referido' => array('n' => 1, 'p' => ''), 7) Abrimos p.registro.form.tpl que esta en la carpeta themes/tutema/templates/t.php_files y debajo de: <div class="form-line"> <label for="email">E-mail</label> <input name="email" type="text" id="email" tabindex="4" title="Ingresa tu dirección de email" onfocus="registro.focus(this)" onblur="registro.blur(this)" onkeydown="registro.clear_time(this.name)" onkeyup="registro.set_time(this.name)" autocomplete="off" /> <div class="help"><span><em></em></span></div> </div> Agregamos: <div class="form-line"> <label for="referido">Ingresa tu referido (opcional)</label> <input name="referido" type="text" id="referido" tabindex="1" title="Ingrese el nick del referido" onfocus="registro.focus(this)" onblur="registro.blur(this)" onkeydown="registro.clear_time(this.name)" onkeyup="registro.set_time(this.name)" autocomplete="off" /> <div class="help"><span><em></em></span></div> </div> 8) Abrimos registro.js que esta en la carpeta themes/tutema/js y buscamos: //Un elemento pierde el foco blur: function(el){ var name = $(el).attr('name'); switch(name){ case 'nick': case 'email': this.clear_time(name); $(el).removeClass('selected'); this.check_campo(el, false, true); break; default: $(el).removeClass('selected'); this.check_campo(el, false, true); break; } }, Lo reemplazamos por: //Un elemento pierde el foco blur: function(el){ var name = $(el).attr('name'); switch(name){ case 'nick': case 'referido': case 'email': this.clear_time(name); $(el).removeClass('selected'); this.check_campo(el, false, true); break; default: $(el).removeClass('selected'); this.check_campo(el, false, true); break; } }, 9) Mas abajo buscamos: /* password */ case 'password': Y antes de eso agregamos: /* referido by tutan-kabron */ case 'referido': //Si ya paso por aca y no hubieron cambios, devuelvo el mismo status if(!force_check && this.datos[campo] === value) if(this.datos_status[campo]=='empty') return no_empty ? this.show_status(el, this.datos_status[campo], this.datos_text[campo]) : this.hide_status(el, this.datos_status[campo], this.datos_text[campo]); else return this.show_status(el, this.datos_status[campo], this.datos_text[campo]); //Almaceno el dato this.datos[campo] = value; //Caracteres validos if(/[^a-zA-Z0-9_]/.test(value)) return this.show_status(el, 'error', 'Sólo se permiten letras, nómeros y guiones(_)'); //Compruebo si ya esta en uso //Compruebo el Cache var value_lower = value.toLowerCase(); if(!this.cache[campo]){ this.cache[campo] = new Array(); this.cache[campo][value_lower] = new Array(); }else if(this.cache[campo][value_lower]){ if(this.cache[campo][value_lower]['status']) return registro.show_status(el, 'ok', this.cache[campo][value_lower]['text']); else return registro.show_status(el, 'error', this.cache[campo][value_lower]['text']); } this.show_status(el, 'loading', 'Comprobando referido...'); $('#loading').fadeIn(250); $.ajax({ type: 'POST', url: global_data.url + '/registro-check-referido.php?t=nombre de usuario', data: 'referido='+value, success: function(h){ registro.cache[campo][value_lower] = new Array(); registro.cache[campo][value_lower]['text'] = h.substring(3); switch(h.charAt(0)){ case '0': //Estaba en uso registro.cache[campo][value_lower]['status'] = true; registro.show_status(el, 'ok', h.substring(3)); break; case '1': //No esta en uso registro.cache[campo][value_lower]['status'] = false; registro.show_status(el, 'error', h.substring(3)); break; } $('#loading').fadeOut(350); }, error: function(){ registro.show_status(el, 'error', 'Hubo un error al intentar procesar lo solicitado'); registro.datos[campo] = ''; } }); break; /* termina campo referido */ 10) Ahora buscamos el archivo c.admin.php que se encuentra en la carpeta inc/class y antes de: /* getNoticias() */ function getNoticias() Agregamos: /* getReferidos() */ function getReferidos() { // $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_name, r.* from referidos AS r LEFT JOIN u_miembros AS u ON r.user_referido = u.user_name ORDER BY r.id DESC'); $data = result_array($query); // return $data; } /* getReferido() */ function getReferido() { global $tsCore; // $id = $tsCore->setSecure($_GET['id']); // $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT `id`, `user_name`, `user_referido`, `fecha` FROM referidos WHERE id = \'' . (int)$id . '\' LIMIT 1'); $data = mysql_fetch_assoc($query); // return $data; } /* deReferidos(); */ function delReferido() { $id = $_GET['id']; if (!db_exec('num_rows', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT `id` FROM `referidos` WHERE `id` = \'' . (int)$id . '\' LIMIT 1'))) { return 'El id ingresado no existe.'; } $query = db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM `referidos` WHERE `id` = \'' . (int)$id . '\''); } 11) Abrimos el archivo admin.php que se encuentra en la carpeta inc/php y antes de: /** NOTICIAS **/ } elseif($action == 'news'){ Agregamos: /** REFERIDOS by tutan-kabron**/ } elseif($action == 'referidos'){ if(empty($act)) $smarty->assign("tsReferidos",$tsAdmin->getReferidos()); elseif($act == 'borrar'){ if($tsAdmin->delReferido()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/referidos?borrar=true'); } 12)Abrimos el archivo t.admin.tpl que se encuentra en la carpeta themes/tutema/templates y antes de: {/if} Agregamos: {elseif $tsAction == 'referidos'} {include file='admin_mods/referidos.tpl'} 13) Abrimos m.admin_sidemenu.tpl que se encuentra en la carpeta themes/tutema/templates/admin_mods y al final agregan: <h4>Utilidades</h4> <ul class="cat-list"> <li id="a_users"><span class="cat-title"><a href="{$tsConfig.url}/admin/referidos">Referidos</a></span></li> </ul> 14) Abrimos c.cuenta.php que se encuentra en la carpeta inc/class y buscamos: /* loadHeadInfo($user_id) */ function loadHeadInfo($user_id){ global $tsUser, $tsCore; // INFORMACION GENERAL $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT u.user_id, u.user_name, u.user_registro, u.user_lastactive, u.user_referidos, u.user_activo, u.user_baneado, p.user_sexo, p.user_pais, p.p_nombre, p.p_avatar, p.p_mensaje, p.p_socials, p.p_empresa, p.p_configs FROM u_miembros AS u, u_perfil AS p WHERE u.user_id = \''.(int)$user_id.'\' AND p.user_id = \''.(int)$user_id.'\''); $data = db_exec('fetch_assoc', $query); Y despues de: u.user_lastactive, Ponemos a su derecha: u.user_referidos, Quedando así: u.user_lastactive, u.user_referidos, 15) Abrimos m.perfil_headinfo.tpl que se encuentra en la carpeta themes/tutema/templates/modules y despues de: <li> <strong>{$tsInfo.stats.user_comentarios}</strong> <span>Comentarios</span> </li> Agregamos: <li> <strong>{$tsInfo.user_referidos}</strong> <span>Referidos</span> </li> 16) Suben el siguiente archivo a la carpeta themes/tutema/templates/admin_mods http://www.mediafire.com/file/x9g4xvu6a3e2zxa/referidos.tpl 17) Ahora van phpmyadmin y ponen las siguientes consultas: (Recuerden en tu phpmyadmin van a donde dice SQL para hacer las consultas) Primero hacen esta: ALTER TABLE `u_miembros` ADD `user_referidos` INT( 11 ) NOT NULL DEFAULT '0' Y luego esta: CREATE TABLE IF NOT EXISTS `referidos` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_referido` varchar(60) CHARACTER SET latin1 NOT NULL, `user_name` varchar(60) CHARACTER SET latin1 NOT NULL, `fecha` int(12) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=16 ; Eso fue todo por la parte de solamente referidos. Si quieren solamente los referidos sin puntos no sigas con los siguientes pasos. Ahora viene la parte de agregarle puntos al que reciba referidos: 1) Ahora van phpmyadmin y ponen las siguientes consultas: (Recuerden en tu phpmyadmin van a donde dice SQL para hacer las consultas) Ponen lo siguiente: ALTER TABLE w_configuracion ADD p_p_refs INT(11) NOT NULL; 2) Buscamos c.admin.php que se encuentra en la carpeta inc/class y luego de: 'offline_message' => $tsCore->setSecure($tsCore->parseBadWords($_POST['offline_message'])), Agregamos: 'p_p_refs' => $tsCore->setSecure($_POST['p_p_refs']), 3) En el mismo archivo buscamos: '\', `offline_message` = \'' . $c['offline_message'] . Y agregamos al lado (a su derecha): Fijensen que el Punto ( . ) va con un espacio a la izquierda y un espacio a la derecha. '\', `p_p_refs` = \'' . $c['p_p_refs'] . 4) Buscamos en c.registro.php que se encuentra en la carpeta inc/class: if($referido != '1'){ db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_referidos = user_referidos + 1 WHERE user_name = \''.$tsData['user_referido'].'\''); db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `referidos` (`user_referido`, `user_name`, `fecha`) VALUES (\''.$tsData['user_referido'].'\', \''.$tsData['user_nick'].'\', \''.time().'\')'); } Y lo reemplazamos por: if($referido != '1'){ db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_puntos = user_puntos + \''.(int)$tsCore->settings['p_p_refs'].'\' WHERE user_name = \''.$tsData['user_referido'].'\''); db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_referidos = user_referidos + 1 WHERE user_name = \''.$tsData['user_referido'].'\''); db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `referidos` (`user_referido`, `user_name`, `fecha`) VALUES (\''.$tsData['user_referido'].'\', \''.$tsData['user_nick'].'\', \''.time().'\')'); $aviso = 'Tu referido <a href="'.$tsCore->settings['url'].'/perfil/'.$tsData['user_nick'].'"><b>'.$tsData['user_nick'].'</b></a>se ha registrado. <br /><br/> Dale la bienvenida! <br />Obtentienes '.(int)$tsCore->settings['p_p_refs'].' puntos por tu referido'; db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `u_avisos` (`user_id`, `av_subject`, `av_body`, `av_date`, `av_type`) VALUES (\''.$tsUser->getUserId($tsData['user_referido']).'\', \'Nuevo referido\', \''.$aviso.'\', \''.'\', \''.time().'\', \'4\')'); } 5) Por último abrimos el archivo m.admin_configs.tpl que se encuentra en la carpeta themes/tutema/templates/admin_mods y buscamos: <dl> <dt><label for="ai_max_com">Comentarios por post:</label><br /><span>N&uacute;mero m&aacute;ximo de comentarios por p&aacute;gina en los post.</span></dt> <dd><input type="text" id="ai_max_com" name="max_com" maxlength="3" value="{$tsConfig.c_max_com}" class="searchBar" style="width: 280px;"/></dd> </dl> Y debajo ponemos: <dl> <dt><label for="p_p_refs">Puntos por referido</label><br /><span>Puntos que recibira como bonificacion un user al subir un posts.</span></dt> <dd><input type="text" id="p_p_refs" name="p_p_refs" style="width:10%" maxlength="3" value="{$tsConfig.p_p_refs}" /></dd> </dl> Y listo, terminado. Capturas: Le agradezco enormemente a: tutan-kabron por crear el mod en primer lugar. k_jupiter por modificar el mod para que tuviera puntos por referido. Vellenger por poner el fix para que el mod ande perfecto. Y a KillerJohn por pedirme si subía el tema. Espero que les sirva. Supongo que mas a los nuevos que a los usuarios viejos. Ya que los viejos, ya saben hacerlo. Saludos!
  3. Hola amigos, de nuevo con dudas. Estoy intentando instalar el mod referidos: Pero no existe el archivo a.sidebar.tpl y bueno quería consultarles como hago para instalarlo en mi web. Seguro es re fácil, pero como se poco y nada, no me sale. web: www.dibujandoconestilo.esy.es Saludos.
  4. Hola hoy les traigo una modificación más + mod o como quieran llamarlo... caps.. 1) Abrimos inc/class/c.cuenta.php y buscamos $data['p_socials'] = unserialize($data['p_socials']); $data['p_socials']['f'] = $data['p_socials'][0]; $data['p_socials']['t'] = $data['p_socials'][1]; y debajo agregamos $data['p_socials']['y'] = $data['p_socials'][2]; $data['p_socials']['i'] = $data['p_socials'][3]; $data['p_socials']['l'] = $data['p_socials'][4]; $data['p_socials']['p'] = $data['p_socials'][5]; más abajo buscamos $data['p_nombre'] = $tsCore->setSecure($tsCore->parseBadWords($data['p_nombre']), true); $data['p_mensaje'] = $tsCore->setSecure($tsCore->parseBadWords($data['p_mensaje']), true); $data['p_socials'] = unserialize($data['p_socials']); $data['p_socials']['f'] = $data['p_socials'][0]; $data['p_socials']['t'] = $data['p_socials'][1]; y debajo agregamos $data['p_socials']['y'] = $data['p_socials'][2]; $data['p_socials']['i'] = $data['p_socials'][3]; $data['p_socials']['l'] = $data['p_socials'][4]; $data['p_socials']['p'] = $data['p_socials'][5]; ahora más abajo buscamos if(!empty($sitio)) $sitio = substr($sitio, 0, 4) == 'http' ? $sitio : 'http://'.$sitio; // EXTERNAS $facebook = $tsCore->setSecure($tsCore->parseBadWords($_POST['facebook']), true); /* ELIMINAR */ $twitter = $tsCore->setSecure($tsCore->parseBadWords($_POST['twitter']), true); /* ELIMINAR */ $youtube = $tsCore->setSecure($tsCore->parseBadWords($_POST['youtube']), true); /* ELIMINAR */ for($i = 0; $i < 5; $i++) $gustos[$i] = $tsCore->setSecure($tsCore->parseBadWords($_POST['g_'.$i]), true); // IN DB $perfilData = array( 'nombre' => $tsCore->setSecure($tsCore->parseBadWords($_POST['nombrez']), true), 'mensaje' => $tsCore->setSecure($tsCore->parseBadWords($_POST['mensaje']), true), 'sitio' => $tsCore->setSecure($tsCore->parseBadWords($sitio), true), 'socials' => serialize(array($facebook,$twitter,$youtube)), /* ELIMINAR */ y la reemplazamos if(!empty($sitio)) $sitio = substr($sitio, 0, 4) == 'http' ? $sitio : 'http://'.$sitio; // EXTERNAS for($i = 0; $i < 5; $i++) $gustos[$i] = $tsCore->setSecure($tsCore->parseBadWords($_POST['g_'.$i]), true); // IN DB $perfilData = array( 'nombre' => $tsCore->setSecure($tsCore->parseBadWords($_POST['nombrez']), true), 'mensaje' => $tsCore->setSecure($tsCore->parseBadWords($_POST['mensaje']), true), 'sitio' => $tsCore->setSecure($tsCore->parseBadWords($sitio), true), Luego buscamos case 8: .... setSecure($_SERVER['REMOTE_ADDR']).'\')')) return array('error' => 'Proceso iniciado, recibirá la respuesta en el correo indicado cuando valoremos el cambio.'); } break; debajo agregaremos esto case 9: // EXTERNAS $facebook = $tsCore->setSecure($tsCore->parseBadWords($_POST['facebook']), true); $twitter = $tsCore->setSecure($tsCore->parseBadWords($_POST['twitter']), true); $youtube = $tsCore->setSecure($tsCore->parseBadWords($_POST['youtube']), true); $instagram = $tsCore->setSecure($tsCore->parseBadWords($_POST['instagram']), true); $linkedin = $tsCore->setSecure($tsCore->parseBadWords($_POST['linkedin']), true); $pinterest = $tsCore->setSecure($tsCore->parseBadWords($_POST['pinterest']), true); // IN DB $perfilData = array( 'socials' => serialize(array($facebook,$twitter,$youtube,$instagram,$linkedin,$pinterest)), ); break; 3) Ahora buscamos en templates/t.cuenta.tpl <li><a onclick="cuenta.chgtab(this)">Cambiar Nick</a></li> y debajo agregamos esto <li><a onclick="cuenta.chgtab(this)">Redes</a></li> Luego más abajo buscamos {include file='modules/m.cuenta_nick.tpl'} y debajo agregamos esto {include file='modules/m.cuenta_redes.tpl'} 4) Ahora vamos a templates/modules/ y creamos un archivo llamado m.cuenta_redes.tpl y en el alojaremos todo esto <div class="content-tabs redes" style="display:none"> <fieldset> <div class="alert-cuenta cuenta-9"></div> <h2 class="active rsocial">Redes Sociales:</h2> <div class="field"> <div id="redesociales"> <span class="fa fa-facebook Linkfa"></span> <strong>facebook.com/</strong> <input type="text" value="{$tsPerfil.p_socials.f}" maxlength="64" name="facebook" id="ft" class="text cuenta-save-9"> </div> <div id="redesociales"> <span class="fa fa-twitter Linktw"></span> <strong>twitter.com/</strong> <input type="text" value="{$tsPerfil.p_socials.t}" maxlength="64" name="twitter" id="ft2" class="text cuenta-save-9"> </div> <div id="redesociales"> <span class="fa fa-youtube Linkyo"></span> <strong>youtube.com/</strong> <input type="text" value="{$tsPerfil.p_socials.y}" maxlength="64" name="youtube" id="ft2" class="text cuenta-save-9"> </div> <div id="redesociales"> <span class="icon icon-instagram Linkins"></span> <strong>instagram.com/</strong> <input type="text" value="{$tsPerfil.p_socials.i}" maxlength="64" name="instagram" id="ft2" class="text cuenta-save-9"> </div> <div id="redesociales"> <span class="fa fa-linkedin Linkli"></span> <strong>linkedin.com/</strong> <input type="text" value="{$tsPerfil.p_socials.l}" maxlength="64" name="linkedin" id="ft2" class="text cuenta-save-9"> </div> <div id="redesociales"> <span class="fa fa-pinterest Linkpi"></span> <strong>pinterest.com/</strong> <input type="text" value="{$tsPerfil.p_socials.p}" maxlength="64" name="pinterest" id="ft2" class="text cuenta-save-9"> </div> </div> <div class="buttons"> <input type="button" value="Guardar" onclick="cuenta.save(9)" class="mBtn btnOk"> </div> <div class="clearfix"></div> </div> 5) En extras.css al final de todo agregaremos ATENCIÓN ACÁ USTEDES PUEDEN MODIFICARLO PARA ADAPTARLO A SU THEME Y UTILIZA FONTAWESOME /* Cuenta */ h2.rsocial { margin: 0px; padding: 8px; font-size: 30px; color: #357997; line-height: 1em; text-align: center; font-family: 'Century gothic'; border-top: 1px dashed #145665; border-bottom: 1px dashed #145665; } #redesociales { width: 100%; padding: 8px; display: block; } #redesociales span { color: #EEE; padding: 6px; font-size: 20px; } #redesociales span.Linkfa, #redesociales span.Linkyo, #redesociales span.Linkins, #redesociales span.Linkli, #redesociales span.Linktw, #redesociales span.Linkpi { padding: 5px 15px; text-align:center; border-radius:3px; } #redesociales span.Linkfa { background:#3B5998;} #redesociales span.Linkyo{ background:#D14836;} #redesociales span.Linkins{ background:#14589E;} #redesociales span.Linkli{ background:#007FB1;} #redesociales span.Linktw{ background:#00ACED;} #redesociales span.Linkpi{ background:DarkRed;} #redesociales strong { color: #333; font-size: 20px; padding-left: 3px; font-weight: normal; text-shadow: 0px 0px 3px #888; text-transform: uppercase!important; } #redesociales input[type="text"] { float: right; color: #555; font-weight: bold; padding: 6px; width: 270px; font-size: 20px; margin-right: 18%; } @media screen and (max-width: 768px) { #redesociales strong { display: none!important; } #redesociales input[type="text"] { float: both; color: #555; font-weight: bold; padding: 6px; width: 270px; font-size: 20px; margin-left: -18%; } } 6) Ahora volvemos a templates/modules/ y crearemos otro archivo llamado m.redes_sociales.tpl <div id="redes-perfil"> {if $tsInfo.p_socials.f} <a target="_blank" href="http://www.facebook.com/{$tsInfo.p_socials.f}" class="qtip" title="{$tsInfo.p_socials.f}"> <span class="fa fa-facebook Linkfa"></span> </a> {/if} {if $tsInfo.p_socials.t} <a target="_blank" href="http://www.twitter.com/{$tsInfo.p_socials.t}" class="qtip" title="@{$tsInfo.p_socials.t}"> <span class="fa fa-twitter Linktw"></span> </a> {/if} {if $tsInfo.p_socials.y} <a target="_blank" href="http://www.youtube.com/{$tsInfo.p_socials.y}" class="qtip" title="{$tsInfo.p_socials.y}"> <span class="fa fa-youtube Linkyo"></span> </a> {/if} {if $tsInfo.p_socials.i} <a target="_blank" href="http://www.instagram.com/{$tsInfo.p_socials.i}" class="qtip" title="@{$tsInfo.p_socials.i}"> <span class="fa fa-instagram Linkins"></span> </a> {/if} {if $tsInfo.p_socials.l} <a target="_blank" href="http://www.linkedin.com/{$tsInfo.p_socials.l}" class="qtip" title="{$tsInfo.p_socials.l}"> <span class="fa fa-linkedin Linkli"></span> </a> {/if} {if $tsInfo.p_socials.p} <a target="_blank" href="http://www.pinterest.com/{$tsInfo.p_socials.p}" class="qtip" title="{$tsInfo.p_socials.p}"> <span class="fa fa-pinterest Linkpi"></span> </a> {/if} </div> 7) y por último agregan {include file='modules/m.redes_sociales.tpl'} en m.perfil_headinfo o en donde ustedes quieran..
  5. Bueno a raiz de que el user foliotv dejo un fix en el siguiente posts: [Fix] Desactivar cuenta quise aportar algo tambien que puse para mi theme esto trata de que cuando un usuario desactiva su cuenta al primer admin se le envia un aviso con la siguiente frase por lo que invita al primer admin a ver su perfil o a borrar la cuenta de modo definitivo borrando todo su contenido como muestra en la siguiente cap una vez pulsado donde dice aqui en la cap anterior Bueno empezamos con el MiniMod una vez aplicado el fix del user foliotv en vamos a c.admin.php y dentro de el buscamos function desCuenta() { global $tsUser, $tsCore; if(db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_activo = \'0\' WHERE user_id = \''.$tsUser->uid.'\'')) $tsCore->redirectTo($tsCore->settings['url'].'/login-salir.php'); return 1; } y lo reemplazamos por function desCuenta() { global $tsUser, $tsCore; if(db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_activo = \'0\' WHERE user_id = \''.$tsUser->uid.'\'')) $aviso = 'El Usuario/a <a href="'.$tsCore->settings['url'].'/perfil/'.$tsUser->nick.'"><b>'.$tsUser->nick.'</b></a> Desactivo su cuenta si quieres borrarla pulsa <a href="'.$tsCore->settings['url'].'/admin/users?act=show&uid='.$tsUser->uid.'&t=6"><b>aqui</b></a>.'; db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `u_avisos` (`user_id`, `av_subject`, `av_body`, `av_date`, `av_type`) VALUES (\'1\', \'Cuenta Desactivada\', \''.$aviso.'\', \''.time().'\', \'0\')'); $tsCore->redirectTo($tsCore->settings['url'].'/login-salir.php'); return 1; } y guardamos. Eso es todo con ello el primer admin recibira un aviso de que un usuario desactivo su cuenta. Un placer espero les sea de ayuda.
  6. Hola amigos, queria ver si alguien se copa en este año nuevo y hace este "mod" hace rato que en alguna pagina que entro, veo como una especie de lo que yo eh llamado "tags sugeridos" y que es eso? pues simplemente una pequeña o gran cantidad de tags, claro a eleccion del administrador, y de paso aclaro que los tags no serian de forma automatica sino que abria que ponerlos manualmente, como ya dije, tanto los tags como la cantidad de ellos a eleccion del administrados, y que al hacer clic automaticamente se agreguen en el campo "tags" cuando se crea un nuevo post, a veces y yo mismo lo reconozco, a los usuarios le da pereza poner tags, pero si tenemos los "tags sugeridos" los usuarios simplemente hacen clic y ya agregan el tag, para ser un poco mas claro dire que mi idea es mas o menos como funcionan los emoticones, solo que en vez de poner el code del emoticon y en el campo o fomr donde creamos el post, agregue el texto ejemplo "juegos" en el campo o fomr "tags" por si no quedo muy claro dejo una imagen y tambien dejo todas mis esperanzas de que alguien lo haga, algo me dice que hacer lo que pido es muy facil, pero a mi no me salio... por el estilo y demas, no importa a eso que despues lo vea cada usuario. dejo imagen! saludos y gracias. share image
  7. Basicamente es el mismo boton del mod: pero mejorado: usa sesión y no cookies solo los que esten logueados con facebook les va a aparecer no usa mucha carga de recursos primero quitamos esta funcion de m.perfil_muro.tpl : <script> {literal} //Js boton compartir facebook Tutan-Kabron 2013 function check() { $('#fb').attr('fbu','1'); document.getElementById('fb').value='1'; $('#c').show(); $('#u').hide(); setCookie("ch",1,365); } function uncheck() { document.getElementById('fb').value='0'; $('#fb').attr('fbu','0'); $('#u').show(); $('#c').hide(); setCookie("ch",0,365); } function setCookie(c_name,value,exdays) { var exdate=new Date(); exdate.setDate(exdate.getDate() + exdays); var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); document.cookie=c_name + "=" + c_value; } function leer(nombre) { var lista = document.cookie.split(";"); for (i in lista) { var busca = lista[i].search(nombre); if (busca > -1) {micookie=lista[i]} } var igual = micookie.indexOf("="); var valor = micookie.substring(igual+1); return valor; } function getCookie(c_name) { var c_value = document.cookie; var c_start = c_value.indexOf(" " + c_name + "="); if (c_start == -1) { c_start = c_value.indexOf(c_name + "="); } if (c_start == -1) { c_value = null; } else { c_start = c_value.indexOf("=", c_start) + 1; var c_end = c_value.indexOf(";", c_start); if (c_end == -1) { c_end = c_value.length; } c_value = unescape(c_value.substring(c_start,c_end)); } return c_value; } function doSomething() { var myCookie = getCookie("ch"); if (myCookie == null) { //setCookie("ch",1,365); check(); } else { ver(); } } function ver() { var t=getCookie("ch"); if (t='1'){ document.getElementById('fb').value='1'; $('#fb').attr('fbu','1'); $('#c').show(); $('#u').hide(); //setCookie("ch",1,365); } //else { if (t='0'){ document.getElementById('fb').value='0'; $('#fb').attr('fbu','0'); $('#u').show(); $('#c').hide(); //setCookie("ch",0,365); } } {/literal} </script> agregamos lo siguiente a acciones.js: // fb button tutan-kabron 2016 function fbon(){ // var a = 'hola'; $.ajax({ type: 'POST', url: global_data.url + '/fb-on.php', data: 'a=' + a, success: function(h){ document.getElementsByClassName('fb').value='1'; $('.fb').attr('fbu','1'); $('.c').show(); $('.u').hide(); } }); } function fboff(){ var a = 'hola'; // $.ajax({ type: 'POST', url: global_data.url + '/fb-off.php', data: 'a=' + a, success: function(h){ document.getElementsByClassName('fb').value='0'; $('.fb').attr('fbu','0'); $('.u').show(); $('.c').hide(); } }); } function fbcheck(){ var a = 'hola'; // $.ajax({ type: 'GET', url: global_data.url + '/fb-check.php', //data: 'a=' + a, success: function(h){ if(h==0){ document.getElementsByClassName('fb').value='0'; $('.fb').attr('fbu','0'); $('.u').show(); $('.c').hide(); }else if(h==1){ document.getElementsByClassName('fb').value='1'; $('.fb').attr('fbu','1'); $('.c').show(); $('.u').hide(); }else if(h==2){ document.getElementsByClassName('fb').value='1'; $('.fb').attr('fbu','1'); $('.c').show(); $('.u').hide(); } } }); } abrimos c.user.php y buscamos: // Actualizamos la session $this->session->update($data['user_id'], $remember, TRUE); // Cargamos la información del usuario $this->loadUser(true); // COMPROBAMOS SI TENEMOS QUE ASIGNAR MEDALLAS $this->DarMedalla(); // debajo aregamos: if($fb == false) setcookie("button", "0"); // 86400 = 1 day} if($fb == true) setcookie("button", "1"); // 86400 = 1 day} mas abajo buscamos: /* LIMPIAR VARIABLES */ $this->info = ''; $this->is_member = 0; # UPDATE $last_active = (time() - (($tsCore->settings['c_last_active'] * 60) * 3)); db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE u_miembros SET user_lastactive \''.$last_active.'\' WHERE user_id = \''.(int)$user_id.'\''); abajo agregamos: setcookie("button", "", time() - 3600); setcookie("ch", "", time() - 3600); unset($session['ch']); mas abajo buscamos: /* userActivate() */ antes ponemos: function fbon(){ $host = parse_url($tsCore->settings['url']); $host = str_replace('www.', '' , strtolower($host['host'])); // Establecer variables $dom = ($host == 'localhost') ? '' : '.' . $host; if($_SESSION["ch"] = '1'); return true; return false; } function fboff(){ $host = parse_url($tsCore->settings['url']); $host = str_replace('www.', '' , strtolower($host['host'])); // Establecer variables $dom = ($host == 'localhost') ? '' : '.' . $host; if($_SESSION["ch"] = '0'); return true; return false; } subimos este archivo a in/php/ajax/ ajax.fb.php en main_header.tpl buscan: <body id="cielo" onload="doSomething()"> reemplazan por: <body id="cielo" {php} if(!isset($_COOKIE['button'])) { {/php}{if $tsUser->is_member} onload="fbcheck()" {/if} {php} } {/php}> abrimos m.perfil_muro.tpl y buscan: {if $tsInfo.uid == $tsUser->uid} {if $tsUser->fb} <input type="hidden" id="fb" class="face-shout qtip" title="Compartir en Facebook" checked="checked" value="" fbu=""> <a onclick="uncheck()" id="c" class="face-shout qtip" title="Compartir en Facebook" style="opacity: 1;"></a> <a onclick="check()" id="u" class="face-shout qtip" title="Compartir en Facebook" ></a> {/if}{/if} reemplazan por: {if $tsInfo.uid == $tsUser->uid} {if $tsUser->fb} <input type="hidden" id="fb" class="face-shout qtip fb" title="Compartir en Facebook" checked="checked" value="" fbu="1"> {php} if(!isset($_COOKIE['button'])) { {/php} <a onclick="fboff()" id="c" class="face-shout qtip c" title="Compartir en Facebook" style="opacity: 1;"></a> <a onclick="fbon()" id="u" class="face-shout qtip u" title="Compartir en Facebook" style=" display:none; "></a> {php} } {/php} {/if}{/if} y eso seria todo demo: Mytech! - Tecnología en un solo lugar
  8. Les traigo este adactacion del MOD Categorías privadas que hace que todos posts, en la categorías que elijas, sean siempre privados. bueno comenzemos Empecemos: 1) Hacen esta SQL en su BD: ALTER TABLE `p_categorias` ADD `c_private` INT( 1 ) NOT NULL DEFAULT '0'; 2) Abren el c.admin.code de inc/class y buscan: /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ } Y arriba añaden: /* SetPrivateCat() */ function SetPrivate() { global $tsCore; // $cid = (int)$_GET['cid']; // $dato = mysql_fetch_assoc(mysql_query('SELECT c_private FROM p_categorias WHERE cid = \''.(int)$cid .'\' LIMIT 1')); if ($dato['c_private'] == 0) $privatize = 1; else $privatize = 0; db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE p_posts SET post_private = \''.$privatize.'\' WHERE post_category = \''.$cid.'\''); return true; } AVISO: Dos veces en el código 3) Abren el c.posts.code de inc/class y buscan: // SOLO MODERADORES Y ADMINISTRADORES if(empty($tsUser->is_admod) && $tsUser->permisos['most'] == false) { $postData['sponsored'] = 0; $postData['sticky'] = 0; } else { $postData['sponsored'] = empty($_POST['patrocinado']) ? 0 : 1; $postData['sticky'] = empty($_POST['sticky']) ? 0 : 1; } Y abajo agregan: $psqsl = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT c_private FROM p_categorias WHERE cid = \''.(int)$postData['category'].'\''); $qs = db_exec('fetch_assoc', '$query', '$psqsl'); if($qs['c_private'] == 1){ $postData['private'] = 1; } 4) Abren el admin.php de inc/php y buscan: } elseif($act == 'change'){ if($_POST['save']){ if($tsAdmin->MoveCat()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/cats?save=true'); } Y abajo añaden: }elseif($act == 'setprivate'){ if($tsAdmin->SetPrivate()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/cats?save=true'); 5) Abren el m.admin_cats.tpl de themes/TUTEMA/admin_mods y buscan: <a href="?act=editar&cid={$c.cid}&t=cat"><img src="{$tsConfig.url}/themes/default/images/icons/editar.png" title="Editar Categoría"/></a> Y abajo agregan: <a href="?act=setprivate&cid={$c.cid}"><img src="{$tsConfig.url}/themes/default/images/icons/key.png" title="Activar/desactivar categoría privada"/></a> Y listo!! Cuando hagan click en la llave, todos los posts que se hagan y esten en esa categoría, serán privados. Cap:
  9. Hola Amigos de la comunidad.. se podría limitar los post que se podran crear por día? Algún programador que se anime a hacerlo.. seria un buen aporte para los que usan los hosting gratis.. por ejemplo un usuario nuevo que solo pueda crear 3 post por día hasta el rango X, y del rango X hasta el rango X... Se ve practico y bueno... Espero me escuchen la petición
  10. Hola que tal, Nesecito un mod "Ultimos juegos agregados" y ponerlo en los post, Parecido al top fotos en la home. Gracias Saludos.!! Para la version risu 1.2 Con el mod de juegos instalado.
  11. Hola amigos de la comunidad, quisiera saber si hay un mod que puedo poner para que los usuarios que se registren no usen los Nicks Como Administrador, Admin, Moderador, Etc..
  12. Hola! yo otra vez con una pequeñisima inquietud La cosa es asi, estuve viendo y buscando pero al parecer no existe asi q lo voy a pedir aver si alguien puede mas o menos orientar con esto,Básicamente seria una lista similar a esta Pero,q muestre los users q se encuentren en una determinada pagina (en tiempo real si es posible,o como sea mejor) ejemplo: lo q sea / pages/ chat Desde ya agradezco cualquier ayuda,saludos!!! PD: killeringa.org theme V5
  13. Eh escuchado sobre el Scroll Infinito, lo tienen muchas web y hasta la versión mobile de Kmario, me gustaría tenerla en Venezuelawarez ya que la paginacion no me funciona, he tratado de copiarme de la versión mobile de Kmario pero no lo hago funcionar. Me gustaria colocarla en http://venezuelawarez.co.ve/articulos/ http://venezuelawarez.co.ve/descargas/ http://venezuelawarez.co.ve/musica/ y en todas las demás paginas, alguien me podría explicar como hacerlo?
  14. Como estan? espero que muy bien! Bueno era solo para molestarlos con una pequeña duda,es q lo he intentado muchas veces sin lograrlo,la cosa es asi,en mi web tengo una categoria +18 NO es seccion,solo categoria como las demas,PERO queria preguntarles si de alguna manera es posible aplicar la siguiente modificacion Para que solo afecte a dicha categoria y no a toda la web , en este caso el ID de la cat es 34,bueno espero que alguien me pueda orientar un poco,de todas formas sino es on ese mod pues q sea de otra menera pero q se logre un resultado similar,desde ya muchisimas gracias! PD.: mi web killeringa.org , Theme V5 EDIT: aqui uno similar EDIT_2:o quizás solo adaptar esto como un simple aviso http://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_modal2
  15. Hola a todos, como saben estoy haciendo el tema v6 de taringa Necesito que me ayuden a fixear unas cosas... No Loguea No funciona facebook connect Focus del busca Etc... El desarollo lo voy a continuar ni bien esten arreglados estos problemas... Archivos V6 inc Theme Header.php https://mega.nz/#!IpZXnTJa!mBruui3R2uWXbT2MZqEr6-h0yJ0w6G1l-OHMKoJ9kgo Demo
  16. Hola, de tanto que miré comentarios de un MOD llamado Index Mediafire del usuario @Dann donde le comentaban que resubiera los archivos y por X causas no lo ha hecho. Opté por hacer de nuevo el inicio de Mediafire y aquí está. Capturas del MOD: http://i.imgur.com/SFNu3u8.png Instalación: En el archivo acciones.js buscar: function open_login_box(action){ if($('#login_box').css('display') == 'block' && action!='open') close_login_box(); else{ $('#login_error').css('display','none'); $('#login_cargando').css('display','none'); $('.opciones_usuario').addClass('here'); $('#login_box').fadeIn('fast'); $('#nickname').focus(); } } function close_login_box(){ $('.opciones_usuario').removeClass('here'); $('#login_box').slideUp('fast'); }Y sustituir por: function open_login_box(action){ if($('#login_box').css('display') == 'block' && action!='open') close_login_box(); else{ $('#mask').css({'width':$(document).width(),'height':$(document).height(),'display':'block'}); $('#login_error').css('display','none'); $('#login_cargando').css('display','none'); $('.opciones_usuario').addClass('here'); $('#login_box').fadeIn('slow'); $('#nickname').focus(); } } function close_login_box(){ $('.opciones_usuario').removeClass('here'); $('#login_box').fadeOut('slow'); $('#mask').css('display', 'none'); }Descargar el archivo .rar, descomprimir y pasar los archivos a sus respectivas carpetas y lo tendrán. Si por alguna razón el usuario accede a la web pasando por alto el inicio y quiera iniciar sesión desde el botón "Identificarme" que está dentro de la Web, deberán copiar el maquetado del login que está en el archivo t.start.tpl y reemplazarlo por el viejo maquetado que está en head_menu.tpl; así como incluir el archivo CSS start.css en el archivo main_header.tpl. Otra solución sería eliminar los botones de registro e inicio de sesión que están dentro de la web y dejar únicamente los de este MOD.
  17. Hola comunidad, bueno quería preguntarles si saben la solución a este error tan raro. Lo que me pasas es que instale el mod Zona Vip de Vallenger, pero lo adapte para la 1.2, ya que su mod estaba hecho en la 1.1, el problema es que al intentarlo se ve que en algo le falle porque ahora me aparece para agregar vips y rangos vips, eso todo bien. Pero a la hora de ir a la zona vip, ahi esta todo mal. En usuarios vip aparece un usuario que no tiene nombre, solo el simbolo @ y cuando le doy para borrarlo o ver su perfil me dice que no existe, :/ Ah y cuando agrego usuario a vip, aparece en el menu de administracion pero en la zona vip no aparece. Ademas, pasa que cuando doy a agregar post lo agrega al inicio y no a la zona vip. El tema que estoy usando es el cralke. Les dejo una captura de la pagina. Ojala sepan saber de donde viene la falla, la verdad que no sabria por donde empezar.
  18. Hola Usuarios de PHPost hoy les traigo la actualización del mod Ultimos shouts en la home a la v1.2 de risus, es para la v4 pero fácilmente podrán adaptado al diseño de su theme. Versión anterior: Empecemos con la Instalación en c.posts.php buscamos: /* getRelated() */ Agregamos arriba: /* Ultimos Shouts en la home */ function getNews($start = 0, $limit = 10){ global $tsUser, $tsCore; // OBTENEMOS LAS ULTIMAS PUBLICACIONES $query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT *,u.* FROM u_muro LEFT JOIN u_miembros AS u ON p_user = u.user_id ORDER BY p_date DESC LIMIT '.$start.','.$limit.''); while($row = db_exec('fetch_array', $query)){ // MENCIONES $row['p_body'] = $tsCore->parseBadWords($tsCore->parseBBCode($tsCore->setMenciones($row['p_body'])), true); // CARGAR ADJUNTOS if($row['p_type'] != 1){ $queryDos = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT * FROM u_muro_adjuntos WHERE pub_id = \''.$row['pub_id'].'\' LIMIT 1'); $adj = db_exec('fetch_assoc', $queryDos); // $data[] = array_merge($row,$adj); } else $data[] = $row; // } // RETORNAMOS return array('total' => count($data), 'data' => $data); } -Si desean cambiar la cantidad de shouts que se mostraran en la home editen la variable $limit (por defecto se mostraran 10) En post.php buscamos: // TOP POSTS $smarty->assign("tsTopPosts",$tsTops->getHomeTopPosts()); Abajo de eso agregamos: //ULTIMOS SHOUTS EN LA HOME $smarty->assign("tsMuro",$tsPosts->getNews()); En t.home.tpl agregamos el modulo donde ustedes gusten: {include file='modules/m.home_shouts.tpl'} Creamos un archivo llamado m.home_shouts.tpl (lo guardamos en la carpeta modules) <div id="ultimos_shouts"> <div class="widget clearfix"> <div class="title-w clearfix"><h3>&Uacute;ltimos Shouts</h3></div> {if $tsMuro == 0} <div class="emptyData">No hay shouts :(</div> {else} {foreach from=$tsMuro.data item=s} <div class="Story" id="pub_{$s.pub_id}"> {if $s.p_user == $tsUser->uid || $s.p_user_pub == $tsUser->uid || $tsUser->is_admod || $tsUser->permisos.moepm} <div class="Story_Hide"> <a href="#" onclick="muro.del_pub({$s.pub_id},1); return false;" title="Eliminar la publicación" class="qtip uiClose"></a> </div> {/if} {if $s.p_user_pub == $s.p_user} <a href="{$tsConfig.url}/perfil/{$s.user_name}" class="Story_Pic"><img src="{$tsConfig.url}/files/avatar/{$s.p_user}_50.jpg" alt="Avatar de {$s.user_name}" /></a> {else} <a href="{$tsConfig.url}/perfil/{$s.user_name}" class="Story_Pic"><img src="{$tsConfig.url}/files/avatar/{$s.p_user}_50.jpg" alt="Avatar de {$s.user_name}" /></a> <a href="{$tsConfig.url}/perfil/{$tsUser->getUserName($s.p_user_pub)}" class="Story_Pic_mim"><img src="{$tsConfig.url}/files/avatar/{$s.p_user_pub}_50.jpg"/></a> {/if} <div class="autor"> {if $s.user_id == $s.p_user} <a href="{$tsConfig.url}/perfil/{$tsUser->getUserName($s.p_user_pub)}" class="hovercard a_blue" uid="{$s.p_user_pub}">@{$tsUser->getUserName($s.p_user_pub)}</a><br> {if $s.p_user_pub != $s.p_user} <span>publico via @<a href="{$tsConfig.url}/perfil/{$s.user_name}" class="hovercard a_blue" uid="{$s.p_user}">{$s.user_name}</a></span> {/if} {else} <a href="{$tsConfig.url}/perfil/{$s.user_name}" class="hovercard a_blue" uid="{$s.p_user_pub}">{$s.user_name}</a> {/if} </div> <div class="Story_Content"> <div class="Story_Head"> <div class="Story_Message"> <span>{$s.p_body|quot}</span> <div class="mvm clearfix"> {if $s.p_type != 1} {if $s.p_type == 2} {if $tsUser->is_member} <a href="{$tsConfig.url}/perfil/{$s.user_name}/{$s.pub_id}" class="uiPhoto"><img src="{$s.a_img}" class="basdower"></a> {else} <img src="{$s.a_img}" class="basdower"> {/if} {elseif $s.p_type == 3} <div class="uiLink"> <div><a href="{$s.a_url}" target="_blank" class="a_blue"><strong>{$s.a_title}</strong></a></div> <a href="{$s.a_url}" target="_blank" class="h-blue">{$s.a_url}</a> </div> {elseif $s.p_type == 4} <a href="{$tsConfig.url}/perfil/{$s.user_name}/{$s.pub_id}" class="uiVideoThumb"> <span><b>{$s.a_title|truncate:35}</b></span> <img src="http://img.youtube.com/vi/{$s.a_url}/0.jpg" class="basdower"> <i></i> </a> {/if} {/if} </div> </div> </div> <div class="Story_Foot"> <div class="Story_Info"> <i class="stream w_{if $s.p_type == 1 && $s.p_user_pub == $s.p_user_pub}0{else}{$s.p_type}{/if}"></i> <span class="text">{$s.p_date|fecha}</span> · <a {if $tsUser->is_member}onclick="muro.like_this({$s.pub_id}, 'pub', this); return false;"{else}href="javascript:open_login_box('open');"{/if} class="a_blue">Me gusta</a> · <a {if $tsUser->is_member}href="{$tsConfig.url}/perfil/{$s.user_name}/{$s.pub_id}"{else}href="javascript:open_login_box('open');"{/if} class="a_blue">Abrir</a> </div> </div> </div> <div class="clearBoth"></div> </div> {/foreach} {/if} </div> </div> {literal} <script> // Eliminar publiccion y like var muro={stream:{status:0},like_this:function(a,b,c){muro.stream.status=1,$("#loading").slideDown(250),$.ajax({type:"POST",url:global_data.url+"/muro-likes.php",dataType:"json",data:"id="+a+"&type="+b,success:function(d){"ok"==d.status?($(c).text(d.link),"pub"==b?($("#lk_"+a).html(d.text),""!=d.text?($("#lk_"+a).parent().parent().show(),$("#cb_"+a).show()):$("#lk_"+a).parent().parent().hide()):($("#lk_cm_"+a).text(d.text),""==d.text?$("#lk_cm_"+a).parent().hide():$("#lk_cm_"+a).parent().show())):mydialog.alert("Error:",d.text.substring(3)),$("#loading").slideUp(350)},complete:function(){muro.stream.status=0}})},del_pub:function(a,b){var c=1==b?"publicaci&oacute;n":"comentario";var d=1==b?"esta ":"este ";mydialog.mask_close=!1,mydialog.show(!0),mydialog.title("Eliminar "+c),mydialog.body("\xbfSeguro que quieres eliminar "+d+c),mydialog.buttons(!0,!0,"Eliminar "+c,"muro.eliminar("+a+", "+b+")",!0,!0,!0,"Cancelar","close",!0,!1),mydialog.center()},eliminar:function(a,b){muro.stream.status=1;var c=1==b?"pub":"cmt";$("#loading").slideDown(250),$.ajax({type:"POST",url:global_data.url+"/muro-stream.php?do=delete",data:"id="+a+"&type="+c,success:function(b){switch(b.charAt(0)){case"0":mydialog.alert("Error:",b.substring(3));break;case"1":mydialog.close(),$("#"+c+"_"+a).hide().remove()}$("#loading").slideUp(450)},complete:function(){muro.stream.status=0,$("#loading").slideUp(350)}})}}; </script> <style> #ultimos_shouts .widget{display:block;float:none;margin-bottom:10px} #ultimos_shouts .widget .title-w{padding-bottom:5px;border-bottom:1px solid #C1c1c1;margin-bottom:5px;color:#000} #ultimos_shouts .widget .title-w h3{font-size:14px;margin:0;float:left} #ultimos_shouts .Story{padding:10px 0;border-bottom:1px solid #E9E9E9;position:relative} #ultimos_shouts .Story_Hide{position:absolute;right:0;display:none} #ultimos_shouts .Story_Hide .uiClose{background:url({/literal}{$tsConfig.tema.t_url}{literal}/images/icons/muro/fb_close_big.png) no-repeat center top;height:15px;width:15px;display:block} #ultimos_shouts .Story:hover .Story_Hide{display:block} #ultimos_shouts .Story_Pic{float:left;margin-right:10px} #ultimos_shouts .Story_Pic_mim{display:inline;float:none;position:absolute;left:20px;top:30px;border:1px solid #fff;background:#fff} #ultimos_shouts .Story_Pic_mim img{vertical-align:top;height:32px;width:32px} #ultimos_shouts .autor{float:left} #ultimos_shouts .Story_Content{float:left;margin-top:10px} #ultimos_shouts .a_blue{color:#3B5998!important;font-weight:bold} #ultimos_shouts .stream{background:url({/literal}{$tsConfig.tema.t_url}{literal}/images/icons/muro/stream.png) no-repeat left top;display:inline-block;width:16px;height:16px;top:3px;left:0;vertical-align:middle} #ultimos_shouts .w_1{background-position:left -16px} #ultimos_shouts .w_2{background-position:left -32px} #ultimos_shouts .w_3{background-position:left -48px} #ultimos_shouts .w_4{background-position:left -64px} #ultimos_shouts .Story_Foot{margin-top:10px} #ultimos_shouts .Story_Foot .Story_Info{color:#999} #ultimos_shouts .Story_Message img.basdower{width:100%} #ultimos_shouts .Story_Message .uiLink{border-left:2px solid #CCC;padding-left:10px} #ultimos_shouts .uiVideoThumb{position:relative} #ultimos_shouts .Story_Message .uiVideoThumb i{background:url({/literal}{$tsConfig.tema.t_url}{literal}/images/icons/muro/fb_video_play.png) no-repeat scroll 0 0 transparent;bottom:0;height:32px;left:0;position:absolute;width:39px} </style> {/literal} Captura: Créditos: Creación del mod: A quien correspondan. @tutan-kabron por su fix: Bueno eso es todo, nos vemos en otro aporte.
  19. Bueno aqui les dejo a pedido de un user.. La verdad que no me quedo muy claro lo que me pedia. Ya que era poder poner los modulos d elos top user, tops posts, comentarios, No se si lo queria que sea dentro de los post ya que no hay mucho espacio.. Hasi que lo agregue en el lado lateral.. Use el theme de gonzalo V5 asi que para otros temas esto puede cambiar el estylo.. Comenzamos.. En el archivo c.posts.php buscamos : /* lalala */ Y agregamos arriba: /* Top Post General*/ function act_tpost(){ global $tsUser, $tsCore; $query = mysql_query("SELECT p.post_id, p.post_category, p.post_title, p.post_puntos, c.c_seo FROM p_posts AS p LEFT JOIN p_categorias AS c ON c.cid = p.post_category WHERE p.post_status = 0 ORDER BY p.post_puntos DESC LIMIT 10"); $data = result_array($query); // return $data; } /* Top User General*/ function act_tuser(){ global $tsUser, $tsCore; $query = mysql_query("SELECT SUM(p.post_puntos) AS total, u.user_id, u.user_name, u.user_baneado, u.user_posts, u.user_activo FROM p_posts AS p LEFT JOIN u_miembros AS u ON p.post_user = u.user_id WHERE p.post_status = 0 AND u.user_activo = 1 AND u.user_baneado = 0 GROUP BY p.post_user ORDER BY total DESC LIMIT 10"); $data = result_array($query); // return $data; } /* Ultimos TOP comentarios General*/ function act_cuser(){ global $tsUser, $tsCore; $query = mysql_query("SELECT SUM(p.post_comments) AS total, u.user_id, u.user_name, u.user_baneado, u.user_posts, u.user_activo FROM p_posts AS p LEFT JOIN u_miembros AS u ON p.post_user = u.user_id WHERE p.post_status = 0 AND u.user_activo = 1 AND u.user_baneado = 0 GROUP BY p.post_user ORDER BY total DESC LIMIT 10"); $data = result_array($query); // return $data; } /* Ultimos comentarios*/ function act_comuser(){ global $tsUser, $tsCore; $query = mysql_query("SELECT * FROM p_comentarios AS c LEFT JOIN u_miembros AS u ON c.c_user = u.user_id LEFT JOIN p_posts AS p ON p.post_id = c.c_post_id LEFT JOIN p_categorias AS ca ON ca.cid = p.post_category WHERE p.post_status = 0 AND u.user_baneado = 0 AND u.user_activo = 1 ORDER BY c.cid DESC LIMIT 10"); $data = result_array($query); // return $data; } EN el Archivo posts.php Buscamos: // DATOS DEL AUTOR $smarty->assign("tsAutor",$tsPosts->getAutor($tsPost['post_user'])); Y Agregamos abajo: // DATOS TOP POSTS, TOP USUARIOS, TOP COMENTADOR, ULTIMOS COMENTARIOS... $smarty->assign("tsPostpv",$tsPosts->act_tpost()); $smarty->assign("tsUserpv",$tsPosts->act_tuser()); $smarty->assign("tsCompv",$tsPosts->act_cuser()); $smarty->assign("tsComupv",$tsPosts->act_comuser()); En el archivo m.posts_autor.tpl buscamos al final: {/if} y Agregamos despues {include file='modules/m.top_posts_general.tpl'} Agregamos esto a su extras.css #box-top-post{width:100%;height:auto;overflow: hidden; border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-o-border-radius:5px 5px 0 0;} .top-p-g h3{padding: 5px 0 5px 0;color:#FFF;font-weight:bold;font-size:16px;border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-o-border-radius:5px 5px 0 0;} #box-top-post ul li{font-family: Helvetica,Arial;display:block;padding:3px 0 3px 0;}.top-p-g{width:100%;background:#00608A;text-align:center;} #box-top-post ul li a{font-weight: 600;color:#A6A6A6;}.ver-mas-v{background:#EAF7FF;text-align:center;padding: 3px 0 3px 0;border-top:1px solid #81BBE0;}.ver-mas-v a{color:#005CA5;} Y Subimos el archivo m.top_posts_general.tpl a modules/ http://www.mediafire.com/?mkomrn866tmf2k8 Les dejo el archivo + las instruciones en txt para los que lo necesiten.. Espero que les sea de utilidad.. (Los tops son con los datos genrales) Hasta la Proxima..
  20. Hola gente! A raíz de estos maravillosos complementos... Tronlar: Vzlawarez: Se me ocurrió la idea de incluir dicha modificación directamente en el editor de post (tal como lo sugirió Tronlar aqui): Pero claro,yo nose como hacerlo,asi que como propuso albert2227... Hice este post con la esperanza q alguien pueda ayudarnos con eso,pienso q sería genial,bueno eso es todo,saludos y gracias
  21. Hola amigos como dice el titulo alguien me podria ayudar a adaptar ese mod para ultima version del scrip phpost [MOD] Portadas de posts automaticas desde ya muchas gracias
  22. Hola gente, tiro una idea para un mod, no se si ya existe o no pero para la 1.2 no lo vi este mod, paso a explicar como sería... La idea es que desde la administración puedas poner un mensaje así como cuando pones una noticia, pero al poner el mensaje y enviarlo les aparezca a todos los usuarios conectados en la pantalla, que salga como un cuadro con el mensaje y que bueno el usuario pueda cerrar el cuadro claro, pero bueno serviría para hacer algún evento en la página y esas cosas, no se quizá a alguien le guste la idea y se anime a hacerlo.. se vería algo así (lo hice con paint )
  23. Instalé las comunidades Kmario y al hacerlo tuve un bug en el panel de moderación, todo lo demás anda perfecto 100% El bug es el siguiente.. El problema como ven es donde antes informaba cuantas denuncias en post habían y esas cosas en el cuadro verde por alguna razón se bugueo y nose solucionarlo, la página esta en LocalHost, la estoy creando y cuando este terminada sin bugs le pondré un nombre y la subiré, si alguien sabe solucionar este bug muchas gracias, saludos Perdón por no ponerlo en el tema, pero ahora que entro y me fijo tampoco anda ninguna función de las comunidades para el moderador como muestra en esta foto..
  24. Hola amigos,les dejo una manera sencilla de tener el modulo,para poder descargar y convertir vídeos de youtube.Le he puesto que el resultado se abra en la misma ventana del modulo,ya ustedes lo modifican a su gusto.Saludos Instalación: 1- Suben la carpeta vídeos al raíz de la web 2- Ponen el include {include file='modules/m.descargar_videos.tpl'} donde quieran,en las imágenes esta puesto en t.home.tpl 3- Suben el archivo m.descargar_videos.tpl a themes/TUTHEME/templates/modules/ y listo. Pass:Tronlar https://mega.nz/#!MIg3xSqa!byPnLbVQkb-dtF8VomENPMyNVjVH-f-HULbS4shA4Aw
  25. Hola! se me ha venido una idea que quisiera tener en mi pagina, instale el mod de videos, pero quisiera agregarle una opcion que al Publicar un nuevo video se pueda colocar un link para descargar dicho video, pero no se como hacerlo, si alguien tiene una idea de como se hace y me ayuda Venezuelawarez.co.ve