Jump to content
Alucard

[MOD] Ultimos Shouts en la Home

Recommended Posts

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: 

oqhf9J5.png

 

Créditos:

Creación del mod: A quien correspondan.

@tutan-kabron por su fix: 

Bueno eso es todo, nos vemos en otro aporte. -bye

 

 

  • Me gusta 8

Compartir este post


Enlace al post
Compartir en otros sitios
Te mereces un 10 espero todo funcione al 100 gracias +1

Dale bro, cualquier cosa lo comentas por acá y con gusto te ayudo. Saludos

Enviado desde mi E5823 mediante Tapatalk

  • Me gusta 1

Compartir este post


Enlace al post
Compartir en otros sitios

Solución para dar like, y para borrar shouts en la home.  

 

Agregué este codigo al principio de m.home_shouts.tpl

 

<script src="{$tsConfig.js}/perfil.js" type="text/javascript"></script>

 

Pero no puedo reproducir videos en la home. 

  • Me gusta 1

Compartir este post


Enlace al post
Compartir en otros sitios

Registra una cuenta o conéctate para comentar

Debes ser un miembro de la comunidad para dejar un comentario


  • Similar Content

    • Por unfernacho
      Hola amigos alguien podría ayudarme a adaptar este mod para que solo puedan utilizarlo usuarios de determinados rangos? el mod es el siguiente:
      Lo que quería es que en la creación de un rango esté la opción de si los usuarios de ese rango pueden publicar un vídeo en su perfil, el mod que siga siendo el mismo solo que tenga esa opción  alguien podría? espero sus respuestas!!
       
    • Por Miguel92
      Bueno les presento un complemento que lo tengo en demo32.hol.es, lo hice porque el panel de la izquierda era muy tosco y feo así que decidí cambiarlo por el de la derecha si alguien quiere este panel, se los pasaré...lo hago así porque no se si les gustará o si lo usarán o no!
       

       
      Para ello deben tener el conjunto de Glyphicon Halflings aunque también se los dejaré por si acaso!
       
      Si la imagen no se ve haz clic aquí
      Después le haré el mod para que el usuario elija la imagen del fondo desde su cuenta!...
    • Por Miguel92
      Hola, este es un mod/mini-mod/complemento que aplica un background solo en el perfil... he tratado de hacerlo con home, fotos, tops, etc. desde la cuenta, en teoría lo que quería hacer es que los usuarios eligieran las imágenes que querían poner para las secciones ya mencionadas, pero solo logré para el perfil... Si el mod ya existía pido perdón, porque no lo he visto
       
      1) Ejecutar esta consulta
      ALTER TABLE `u_perfil` ADD `p_fondo` VARCHAR(200) NOT NULL;  2) Ir a c.cuenta.php y buscar 
      function loadHeadInfo($user_id){         global $tsUser, $tsCore;         // INFORMACION GENERAL y dentro de esta función buscamos 
      p.p_socials, p.p_empresa, y agregar a lado de esto
      p.p_fondo,  Luego buscar más abajo
      }         // COMPROBAR PORCENTAJE         $total = array(5,8,9,8,9); // CAMPOS EN CADA CATEGORIA         $tid = $save - 1; y arriba agregamos
                  case 9:                 // IN DB                 $perfilData = array(                     'fondo' => $tsCore->setSecure($_POST['fondo']), //Este es para el perfil                 );             break;  
      3) Vamos a estilos.css y en body dentro de las llaves {...} agregaremos esto
          background-position: center center;     background-repeat: no-repeat;     background-attachment: fixed;     background-size: cover;  
      4) Luego buscar tuTheme/templates/t.cuenta.tpl y debajo de 
      <li><a onclick="cuenta.chgtab(this)">Cambiar Nick</a></li> agregamos
      <li><a onclick="cuenta.chgtab(this)">Fondo</a></li> un poco más abajo debajo de
      {include file='modules/m.cuenta_nick.tpl'} agregamos
      {include file='modules/m.cuenta_fondo.tpl'}  
      5) Crearemos el archivo m.cuenta_fondo.tpl y la colocaremos en modules
      <div class="content-tabs fondo" style="display:none">     <fieldset>     <div class="alert-cuenta cuenta-9"></div>              <div class="field" style="padding: 5px 0">             <label for="fondo" style="display: inline-block;">Fondo del Perfil:</label>             <input type="text" value="{$tsPerfil.p_fondo}" maxlength="200" name="fondo" id="fondo" class="text cuenta-save-9" style="width:65%; display: inline-block;">         </div>    </fieldset>                   <div class="buttons">             <input type="button" value="Guardar" onclick="cuenta.save(9)" class="mBtn btnOk"/>         </div>                                      <div class="clearfix"></div> </div>  
      6) Último paso vamos a templates/sections/main_header.tpl y buscamos
      </head> <body> y arriba agregamos
      {literal} <style>     body {         background-image: url({/literal}{$tsInfo.p_fondo}{literal});     } </style> {/literal} RESULTADO FINAL:

       
       
      Para evitar las puntas blancas busquen en estilos.css
       /****** Bordes Redondos ******/  debajo agregan ↓ ↓ ↓ 
      .rtop { border-radius: 11px 11px 0 0; } .rbott { border-radius: 0 0 11px 11px; }  y listo quedará más lindo
      Para el fondo con opaco → ir a sections/main_header.tpl y buscar <body> debajo pegamos
      <div id="background_transparent"></div> y en estilo.css debajo de body { ... } pegamos
      Fondo 1
      #background_transparent {     background-color: rgba(255,255,255,.6);     position: fixed;     height: 100%;     top: 0;     width: 100%;     z-index: -1; } Fondo 2
      #background_transparent {     background-color: rgba(0,0,0,.8);     position: fixed;     height: 100%;     top: 0;     width: 100%;     z-index: -1; } Fondo1                                                           Fondo2

    • Por unfernacho
      Bueno el mod consistiría en que el usuario pueda agrandar el tamaño de la letra a su vista, por ejemplo la fuente por default es 13px, que el usuario pueda agrandarla hasta 22px que es un tamaño que ya sin anteojos ya se podría leer fácilmente digamos, entonces a el usuario le aparezcan 2 botones por ejemplo [ - ] [ + ] y vaya subiendo y bajando el tamaño de la letra según los clicks del usuario por ejemplo cuando el usuario empiece a clieckear el botón [ + ] vaya subiendo el tamaño de la letra de esta forma: (13px por default)(16px 1 click)(18px 2 clicks)(21px 3 clicks)(24px 4 clicks), luego de bajada lo mismo hasta que se estanque en 13px que es el tamaño por default.
       
      alguien podría lograr hacerlo? espero sus respuestas!!! gracias!
       
    • Por unfernacho
      Bueno antes hice un tema pidiendo si alguien podía adaptar un mod, pero ahora creo que ya se como hacer para que esto funcione, pero no se donde agregarlo.
      El mod es el siguiente:
      Lo que quiero hacer es que el icono aparte de que aparezca al lado del nombre en el perfil también aparezca dentro del post y al pasar el ratón por arriba del nombre como se muestra en estas imagenes:
      ASI SE VE EL MOD ORIGINAL

      LO QUE QUIERO ES AGREGAR ESE ICONO EN ESTAS PARTES DE LA WEB

       

       
      Entonces lo que creo que hay que hacer basándome en el mod original es agregar el u.user_vips, al PHP correspondiente y el {if $tsInfo.user_vips} al lado del NICK, lo que no se es en que archivos se encuentran en que php se agrega el u.user_vips, y en que parte, y en que archivo se agrega el info.user_vips, alguno podría ayudarme? gracias!
      @Kmario19 @Vellenger necesito su ayuda 
  • Navegando Recientemente   0 miembros

    No registered users viewing this page.

×