12-11-2021, 06:03 PM
3
Captura[img]Registrate o inicia tu sesión para ver este contenido[/img]
En c.posts.php --> inc --> class --> c.posts.php
Buscar:
Código PHP: ( Seleccionar Todo )
$lastPosts['data'] = result_array($query);
Debajo agregar:
Código PHP: ( Seleccionar Todo )
/****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'] == 1 ? '' : ' && 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'] == 1 ? '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)
Código PHP: ( Seleccionar Todo )
/****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'] == 1 ? '' : ' && 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'] == 1 ? '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'] == 1 ? '' : ' && 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'] == 1 ? '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'] == 1 ? '' : ' && 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'] == 1 ? '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:
Código PHP: ( Seleccionar Todo )
$smarty->assign("tsPosts",$tsLastPosts['data']);
Agregan (tantas veces quieran mostrar categorías diferentes):
Código PHP: ( Seleccionar Todo )
$smarty->assign("tsPCat",$tsLastPosts['cat']);
Ejemplo
Código PHP: ( Seleccionar Todo )
$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:
Código PHP: ( Seleccionar Todo )
<div class="clearbeta lastPosts">
{if $tsPCat}
<div class="header">
<div class="box_txt ultimos_posts">Categorí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}" >
<a {if $p.post_status == 3}class="qtip" title="El post está en revisión"{elseif $p.post_status == 1}class="qtip" title="El post se encuentra en revisión por acumulación de denuncias"{elseif $p.post_status == 2}class="qtip" title="El post está eliminado"{elseif $p.user_activo == 0}class="qtip" title="La cuenta del usuario está desactivada"{elseif $p.user_baneado == 1}class="qtip" title="La cuenta del usuario está 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} » <a href="{$tsConfig.url}/perfil/{$p.user_name}" class="hovercard" uid="{$p.post_user}"><strong>@{$p.user_name}</strong></a> · Puntos <strong>{$p.post_puntos}</strong> · Comentarios <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á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í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
Código PHP: ( Seleccionar Todo )
<div class="clearbeta lastPosts">
{if $tsPCat}
<div class="header">
<div class="box_txt ultimos_posts">Categoría Acció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}" >
<a {if $p.post_status == 3}class="qtip" title="El post está en revisión"{elseif $p.post_status == 1}class="qtip" title="El post se encuentra en revisión por acumulación de denuncias"{elseif $p.post_status == 2}class="qtip" title="El post está eliminado"{elseif $p.user_activo == 0}class="qtip" title="La cuenta del usuario está desactivada"{elseif $p.user_baneado == 1}class="qtip" title="La cuenta del usuario está 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} » <a href="{$tsConfig.url}/perfil/{$p.user_name}" class="hovercard" uid="{$p.post_user}"><strong>@{$p.user_name}</strong></a> · Puntos <strong>{$p.post_puntos}</strong> · Comentarios <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á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í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}" >
<a {if $p.post_status == 3}class="qtip" title="El post está en revisión"{elseif $p.post_status == 1}class="qtip" title="El post se encuentra en revisión por acumulación de denuncias"{elseif $p.post_status == 2}class="qtip" title="El post está eliminado"{elseif $p.user_activo == 0}class="qtip" title="La cuenta del usuario está desactivada"{elseif $p.user_baneado == 1}class="qtip" title="La cuenta del usuario está 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} » <a href="{$tsConfig.url}/perfil/{$p.user_name}" class="hovercard" uid="{$p.post_user}"><strong>@{$p.user_name}</strong></a> · Puntos <strong>{$p.post_puntos}</strong> · Comentarios <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á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í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}" >
<a {if $p.post_status == 3}class="qtip" title="El post está en revisión"{elseif $p.post_status == 1}class="qtip" title="El post se encuentra en revisión por acumulación de denuncias"{elseif $p.post_status == 2}class="qtip" title="El post está eliminado"{elseif $p.user_activo == 0}class="qtip" title="La cuenta del usuario está desactivada"{elseif $p.user_baneado == 1}class="qtip" title="La cuenta del usuario está 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} » <a href="{$tsConfig.url}/perfil/{$p.user_name}" class="hovercard" uid="{$p.post_user}"><strong>@{$p.user_name}</strong></a> · Puntos <strong>{$p.post_puntos}</strong> · Comentarios <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ás</a>{/if}
{/foreach}
</ul>
<br clear="left"/>
</div>
{/if}
</div>
Creditos: Debes agradecer para ver el contenido...


Facebook
Twitter
Reddit
Digg
del.icio.us
Tumblr
Pinterest
Blogger
Fark
LinkedIn
Mix
Google