¡Bienvenido! ¿Aún no estás registrado?, deberás registrarte antes de poder usar el Chat, Comentar y Descargar en el Foro. Usa un email válido para la activación.
Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

COMPLEMENTOS Ver posts por categoría separados en la home (Act 1.3)
#1

3
Mejor respuesta del mensaje Ver posts por categoría separados en la home (Act 1.3)Captura
[img]Registrate o inicia tu sesión para ver este contenido[/img]

 
 
En c.posts.php  --> inc --> class --> c.posts.php

Buscar:
$lastPosts['data'] = result_array($query); 
 
 
Debajo agregar:
/****FILTRO CATEGORIA 1*****/
      
$categoria 1;
      
$sql db_exec(array(__FILE____LINE__), 'query''SELECT p.post_id, p.post_user, p.post_category, p.post_title, p.post_date, p.post_comments, p.post_puntos, p.post_private, p.post_sponsored, p.post_status, p.post_sticky, u.user_id, u.user_name, u.user_activo, u.user_baneado, c.c_nombre, c.c_seo, c.c_img FROM p_posts AS p LEFT JOIN u_miembros AS u ON p.post_user = u.user_id  '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == '' ' && u.user_activo = \'1\' && u.user_baneado = \'0\'').' LEFT JOIN p_categorias AS c ON c.cid = p.post_category WHERE '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 'p.post_id > 0' 'p.post_status = \'0\' && u.user_activo = \'1\' && u.user_baneado = \'0\'').' AND p.post_category ='.$categoria.' ORDER BY p.post_id DESC LIMIT 5');
      
$lastPosts['cat'] = result_array($sql); 
 
 
Explicación
  • La variable $categoria tendrá un valor entero que es equivalente a la id  de la categoría que queremos, en este caso yo puse 1 como ejemplo, en mis categorías de juegos es "acción"
  • Se mostraran solo 5 resultados como máximo, se puede cambiar donde dice LIMIT 5 por la cantidad que quieran. Le he puesto solo eso porque la idea es que si hay mas resultados, aparezca el boton "ver más" que nos mostrará los "últimos posts" con todos los posts de dicha categoría.
  • Si quieren agregar más filtros, dupliquen todo el código anterior y le cambiaran el nombre de la variable.
    
Ejemplo

    $sql por $sql2 (puede ser cualqiera)
    $lastPosts['cat'] = result_array($sql); lo cambian por $lastPosts['cat2'] = result_array($sql2);
    Y así copian el código tantas veces quieran y solo le cambiaran los números de las variables (ejemplo $sql3, $sql4, $sql5... etc)


/****FILTRO CATEGORIA 1*****/
      
$categoria 1;
      
$sql db_exec(array(__FILE____LINE__), 'query''SELECT p.post_id, p.post_user, p.post_category, p.post_title, p.post_date, p.post_comments, p.post_puntos, p.post_private, p.post_sponsored, p.post_status, p.post_sticky, u.user_id, u.user_name, u.user_activo, u.user_baneado, c.c_nombre, c.c_seo, c.c_img FROM p_posts AS p LEFT JOIN u_miembros AS u ON p.post_user = u.user_id  '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == '' ' && u.user_activo = \'1\' && u.user_baneado = \'0\'').' LEFT JOIN p_categorias AS c ON c.cid = p.post_category WHERE '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 'p.post_id > 0' 'p.post_status = \'0\' && u.user_activo = \'1\' && u.user_baneado = \'0\'').' AND p.post_category ='.$categoria.' ORDER BY p.post_id DESC LIMIT 5');
      
$lastPosts['cat'] = result_array($sql);
      
/****FILTRO CATEGORIA 2*****/
      
$categoria 2;
      
$sql2 db_exec(array(__FILE____LINE__), 'query''SELECT p.post_id, p.post_user, p.post_category, p.post_title, p.post_date, p.post_comments, p.post_puntos, p.post_private, p.post_sponsored, p.post_status, p.post_sticky, u.user_id, u.user_name, u.user_activo, u.user_baneado, c.c_nombre, c.c_seo, c.c_img FROM p_posts AS p LEFT JOIN u_miembros AS u ON p.post_user = u.user_id  '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == '' ' && u.user_activo = \'1\' && u.user_baneado = \'0\'').' LEFT JOIN p_categorias AS c ON c.cid = p.post_category WHERE '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 'p.post_id > 0' 'p.post_status = \'0\' && u.user_activo = \'1\' && u.user_baneado = \'0\'').' AND p.post_category ='.$categoria.' ORDER BY p.post_id DESC LIMIT 5');
      
$lastPosts['cat2'] = result_array($sql2);
      
/****FILTRO CATEGORIA 3*****/
      
$categoria 3;
      
$sql3 db_exec(array(__FILE____LINE__), 'query''SELECT p.post_id, p.post_user, p.post_category, p.post_title, p.post_date, p.post_comments, p.post_puntos, p.post_private, p.post_sponsored, p.post_status, p.post_sticky, u.user_id, u.user_name, u.user_activo, u.user_baneado, c.c_nombre, c.c_seo, c.c_img FROM p_posts AS p LEFT JOIN u_miembros AS u ON p.post_user = u.user_id  '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == '' ' && u.user_activo = \'1\' && u.user_baneado = \'0\'').' LEFT JOIN p_categorias AS c ON c.cid = p.post_category WHERE '.($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 'p.post_id > 0' 'p.post_status = \'0\' && u.user_activo = \'1\' && u.user_baneado = \'0\'').' AND p.post_category ='.$categoria.' ORDER BY p.post_id DESC LIMIT 5');
      
$lastPosts['cat3'] = result_array($sql3); 

 
En posts.php  --> inc --> php --> posts.php

Buscar:
$smarty->assign("tsPosts",$tsLastPosts['data']); 
 
 
Agregan (tantas veces quieran mostrar categorías diferentes):
$smarty->assign("tsPCat",$tsLastPosts['cat']); 
 
 
Ejemplo
$smarty->assign("tsPCat",$tsLastPosts['cat']);
        
$smarty->assign("tsPCat2",$tsLastPosts['cat2']);
        
$smarty->assign("tsPCat3",$tsLastPosts['cat3']); 
 
 
En m.home_last_posts.tpl --> themes --> default --> templates --> modules --> m.home_last_posts.tpl

Al final agregar:
<div class="clearbeta lastPosts">
                    {if 
$tsPCat}
                    <
div class="header">
                        <
div class="box_txt ultimos_posts">Categor&iacute;a 1</div>
                        <
div class="box_rss">
                            <
a href="/rss/ultimos-post">
                                <
span class="systemicons sRss" style="position:relative;z-index:87"></span>
                            </
a>
                        </
div>
                        <
div class="clearBoth"></div>
                    </
div>
                    <
div class="body">
                        <
ul>
                            {foreach 
from=$tsPCat item=p key=i}
                            <
li class="categoriaPost" style="background-image:url({$tsConfig.tema.t_url}/images/icons/cat/{$p.c_img}); {if $p.post_status == 3} background-color:#f1f1f1; {elseif $p.post_status == 1}background-color:coral;{elseif $p.post_status == 2} background-color:rosyBrown;{elseif $p.user_activo == 0} background-color:burlyWood;{elseif $p.user_baneado == 1} background-color:orange;{/if}" >
                                <
{if $p.post_status == 3}class="qtip" title="El post est&aacute; en revisi&oacute;n"{elseif $p.post_status == 1}class="qtip" title="El post se encuentra en revisi&oacute;n por acumulaci&oacute;n de denuncias"{elseif $p.post_status == 2}class="qtip" title="El post est&aacute; eliminado"{elseif $p.user_activo == 0}class="qtip" title="La cuenta del usuario est&aacute; desactivada"{elseif $p.user_baneado == 1}class="qtip" title="La cuenta del usuario est&aacute; suspendida"{/if} class="title {if $p.post_private}categoria privado{/if}" alt="{$p.post_title}title="{$p.post_title}target="_self" href="{$tsConfig.url}/posts/{$p.c_seo}/{$p.post_id}/{$p.post_title|seo}.html">{$p.post_title|truncate:50}</a>
                                <
span>{$p.post_date|hace} &raquo; <a href="{$tsConfig.url}/perfil/{$p.user_name}class="hovercard" uid="{$p.post_user}"><strong>@{$p.user_name}</strong></a> &middotPuntos <strong>{$p.post_puntos}</strong> &middotComentarios <strong>{$p.post_comments}</strong></span>
                                <
span class="floatR"><a href="{$tsConfig.url}/posts/{$p.c_seo}/">{$p.c_nombre}</a></span>
                            </
li>
                            {if 
$i 4}<a href="{$tsConfig.url}/posts/{$p.c_seo}/" class="floatL">Ver m&aacute;s</a>{/if}
                            {/foreach}
                        </
ul>
                        <
br clear="left"/>
                    </
div>
                    {/if}                    
                 </
div


Explicación

    {if $tsPCat} → Condicional por si existe o no posts de la categoría (si agregan más no olviden poner el 2, 3, 4, etc en los otros códigos)
    <div class="box_txt ultimos_posts">Categor&iacute;a 1</div>nombre de la categoría seleccionada
    {if $i > 4} → Condicional que determina el LIMITE mencionado anteriormente - 1 (menos 1) para que muestre el botón de ver más de la categoría escogida
    Repiten este mismo código cuantas veces quieran de las categorías seleccionadas.


Ejemplo
<div class="clearbeta lastPosts">
                    {if 
$tsPCat}
                    <
div class="header">
                        <
div class="box_txt ultimos_posts">Categor&iacute;a Acci&oacute;n</div>
                        <
div class="box_rss">
                            <
a href="/rss/ultimos-post">
                                <
span class="systemicons sRss" style="position:relative;z-index:87"></span>
                            </
a>
                        </
div>
                        <
div class="clearBoth"></div>
                    </
div>
                    <
div class="body">
                        <
ul>
                            {foreach 
from=$tsPCat item=p key=i}
                            <
li class="categoriaPost" style="background-image:url({$tsConfig.tema.t_url}/images/icons/cat/{$p.c_img}); {if $p.post_status == 3} background-color:#f1f1f1; {elseif $p.post_status == 1}background-color:coral;{elseif $p.post_status == 2} background-color:rosyBrown;{elseif $p.user_activo == 0} background-color:burlyWood;{elseif $p.user_baneado == 1} background-color:orange;{/if}" >
                                <
{if $p.post_status == 3}class="qtip" title="El post est&aacute; en revisi&oacute;n"{elseif $p.post_status == 1}class="qtip" title="El post se encuentra en revisi&oacute;n por acumulaci&oacute;n de denuncias"{elseif $p.post_status == 2}class="qtip" title="El post est&aacute; eliminado"{elseif $p.user_activo == 0}class="qtip" title="La cuenta del usuario est&aacute; desactivada"{elseif $p.user_baneado == 1}class="qtip" title="La cuenta del usuario est&aacute; suspendida"{/if} class="title {if $p.post_private}categoria privado{/if}" alt="{$p.post_title}title="{$p.post_title}target="_self" href="{$tsConfig.url}/posts/{$p.c_seo}/{$p.post_id}/{$p.post_title|seo}.html">{$p.post_title|truncate:50}</a>
                                <
span>{$p.post_date|hace} &raquo; <a href="{$tsConfig.url}/perfil/{$p.user_name}class="hovercard" uid="{$p.post_user}"><strong>@{$p.user_name}</strong></a> &middotPuntos <strong>{$p.post_puntos}</strong> &middotComentarios <strong>{$p.post_comments}</strong></span>
                                <
span class="floatR"><a href="{$tsConfig.url}/posts/{$p.c_seo}/">{$p.c_nombre}</a></span>
                            </
li>
                            {if 
$i 4}<a href="{$tsConfig.url}/posts/{$p.c_seo}/" class="floatL">Ver m&aacute;s</a>{/if}
                            {/foreach}
                        </
ul>
                        <
br clear="left"/>
                    </
div>
                    {/if}                    
                 </
div>
                 <
div class="clearbeta lastPosts">
                    {if 
$tsPCat2}
                    <
div class="header">
                        <
div class="box_txt ultimos_posts">Categor&iacute;a Aventuras</div>
                        <
div class="box_rss">
                            <
a href="/rss/ultimos-post">
                                <
span class="systemicons sRss" style="position:relative;z-index:87"></span>
                            </
a>
                        </
div>
                        <
div class="clearBoth"></div>
                    </
div>
                    <
div class="body">
                        <
ul>
                            {foreach 
from=$tsPCat2 item=p key=i}
                            <
li class="categoriaPost" style="background-image:url({$tsConfig.tema.t_url}/images/icons/cat/{$p.c_img}); {if $p.post_status == 3} background-color:#f1f1f1; {elseif $p.post_status == 1}background-color:coral;{elseif $p.post_status == 2} background-color:rosyBrown;{elseif $p.user_activo == 0} background-color:burlyWood;{elseif $p.user_baneado == 1} background-color:orange;{/if}" >
                                <
{if $p.post_status == 3}class="qtip" title="El post est&aacute; en revisi&oacute;n"{elseif $p.post_status == 1}class="qtip" title="El post se encuentra en revisi&oacute;n por acumulaci&oacute;n de denuncias"{elseif $p.post_status == 2}class="qtip" title="El post est&aacute; eliminado"{elseif $p.user_activo == 0}class="qtip" title="La cuenta del usuario est&aacute; desactivada"{elseif $p.user_baneado == 1}class="qtip" title="La cuenta del usuario est&aacute; suspendida"{/if} class="title {if $p.post_private}categoria privado{/if}" alt="{$p.post_title}title="{$p.post_title}target="_self" href="{$tsConfig.url}/posts/{$p.c_seo}/{$p.post_id}/{$p.post_title|seo}.html">{$p.post_title|truncate:50}</a>
                                <
span>{$p.post_date|hace} &raquo; <a href="{$tsConfig.url}/perfil/{$p.user_name}class="hovercard" uid="{$p.post_user}"><strong>@{$p.user_name}</strong></a> &middotPuntos <strong>{$p.post_puntos}</strong> &middotComentarios <strong>{$p.post_comments}</strong></span>
                                <
span class="floatR"><a href="{$tsConfig.url}/posts/{$p.c_seo}/">{$p.c_nombre}</a></span>
                            </
li>
                            {if 
$i 4}<a href="{$tsConfig.url}/posts/{$p.c_seo}/" class="floatL">Ver m&aacute;s</a>{/if}
                            {/foreach}
                        </
ul>
                        <
br clear="left"/>
                    </
div>
                    {/if}                    
                 </
div>
                 <
div class="clearbeta lastPosts">
                    {if 
$tsPCat3}
                    <
div class="header">
                        <
div class="box_txt ultimos_posts">Categor&iacute;a Deportes</div>
                        <
div class="box_rss">
                            <
a href="/rss/ultimos-post">
                                <
span class="systemicons sRss" style="position:relative;z-index:87"></span>
                            </
a>
                        </
div>
                        <
div class="clearBoth"></div>
                    </
div>
                    <
div class="body">
                        <
ul>
                            {foreach 
from=$tsPCat3 item=p key=i}
                            <
li class="categoriaPost" style="background-image:url({$tsConfig.tema.t_url}/images/icons/cat/{$p.c_img}); {if $p.post_status == 3} background-color:#f1f1f1; {elseif $p.post_status == 1}background-color:coral;{elseif $p.post_status == 2} background-color:rosyBrown;{elseif $p.user_activo == 0} background-color:burlyWood;{elseif $p.user_baneado == 1} background-color:orange;{/if}" >
                                <
{if $p.post_status == 3}class="qtip" title="El post est&aacute; en revisi&oacute;n"{elseif $p.post_status == 1}class="qtip" title="El post se encuentra en revisi&oacute;n por acumulaci&oacute;n de denuncias"{elseif $p.post_status == 2}class="qtip" title="El post est&aacute; eliminado"{elseif $p.user_activo == 0}class="qtip" title="La cuenta del usuario est&aacute; desactivada"{elseif $p.user_baneado == 1}class="qtip" title="La cuenta del usuario est&aacute; suspendida"{/if} class="title {if $p.post_private}categoria privado{/if}" alt="{$p.post_title}title="{$p.post_title}target="_self" href="{$tsConfig.url}/posts/{$p.c_seo}/{$p.post_id}/{$p.post_title|seo}.html">{$p.post_title|truncate:50}</a>
                                <
span>{$p.post_date|hace} &raquo; <a href="{$tsConfig.url}/perfil/{$p.user_name}class="hovercard" uid="{$p.post_user}"><strong>@{$p.user_name}</strong></a> &middotPuntos <strong>{$p.post_puntos}</strong> &middotComentarios <strong>{$p.post_comments}</strong></span>
                                <
span class="floatR"><a href="{$tsConfig.url}/posts/{$p.c_seo}/">{$p.c_nombre}</a></span>
                            </
li>
                            {if 
$i 4}<a href="{$tsConfig.url}/posts/{$p.c_seo}/" class="floatL">Ver m&aacute;s</a>{/if}
                            {/foreach}
                        </
ul>
                        <
br clear="left"/>
                    </
div>
                    {/if}                    
                 </
div





Creditos: Debes agradecer para ver el contenido...
Responder


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)