[Terminado] Temas recientes en home

Perfil del autor

Iniciado por Miguel92
En Complementos PHPost Más de 3 meses


Topic en Complementos PHPost N°395
Público Privacidad
Normal Tipo
5 Respuestas
95 Visitas
4 Puntos
Miguel92 Fundador 181 14
Topics 27
Respuestas 95
Miguel92 Fundador
Más de 3 meses
Bueno como he visto este topic (Desarrollo) Temas recientes en Home he decidido realizarlo de otra manera, para que sea más fácil de entender.

Captura: (Obviamente la deben adaptar a su theme)
[Terminado] Temas recientes en home

1 - Vamos a forzar el idioma español en php, ya que el mes que figure en el tema estará en inglés, buscamos en header.php 
$smarty = new SmartyBC();
y debajo pegamos 
/**
 * -------------------------------------------------------------------
 * DAMOS LA UBICACIÓN GEOGRÁFICA 
 * Página: https://www.php.net/manual/es/timezones.php
 * -------------------------------------------------------------------
*/
date_default_timezone_set('America/Argentina/Buenos_Aires');
/**
 * -------------------------------------------------------------------
 * FORZAMOS EL IDIOMA EN ESPAÑOL 
 * Página: https://www.php.net/manual/es/function.setlocale.php
 * -------------------------------------------------------------------
*/
$locale = "es_ES";
setlocale(LC_ALL, $locale);
setlocale(LC_TIME, 'spanish');
// Linux
setlocale(LC_MESSAGES, $locale);
// windows
putenv("LC_ALL={$locale}"); 
$smarty->assign('Lenguaje', $locale);

2 - Luego vamos a c.posts.php y reemplazaremos la función que esta en el topic mencionado.
    // Temas recientes en la home
function getTemitasrecienteshome() {
global $tsCore, $tsUser;
# Total de temas
$admod_total = ($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 1 ? "" : "AND u.user_activo = 1 && u.user_baneado = 0 && t.t_estado = 0");
$q1 = db_exec('fetch_row', db_exec(array(__FILE__, __LINE__), 'query', "SELECT COUNT(t.t_id) AS total FROM c_temas AS t LEFT JOIN u_miembros AS u ON t.t_autor = u.user_id WHERE t.t_id > 0 {$admod_total}"));
$data['total'] = $q1[0];
// Maximo a mostrar
$max = 20;
$limit = $tsCore->setPageLimit($max, false, $data['total']);
$data['pages'] = $tsCore->getPages($data['total'], $max);
//
$admod = ($tsUser->is_admod && $tsCore->settings['c_see_mod'] == 1 ? "" : "AND u.user_activo = 1 AND u.user_baneado = 0 AND t.t_estado = 0 AND c.c_estado = 0");
$data['temas'] = result_array(db_exec(array(__FILE__, __LINE__), 'query', "SELECT c.c_nombre, c.c_nombre_corto, c.c_sub_categoria, t.t_estado, t.t_id, t.t_titulo, t.t_autor, t.t_fecha, u.user_id, u.user_name, s.s_nombre FROM c_temas AS t LEFT JOIN c_comunidades AS c ON c.c_id = t.t_comunidad LEFT JOIN u_miembros AS u ON u.user_id = t.t_autor LEFT JOIN c_subcategorias AS s ON c.c_sub_categoria = s.sid WHERE t.t_id > 0 {$admod} ORDER BY t.t_fecha DESC LIMIT {$limit}"));
// Para la categoria...
foreach ($data['temas'] as $k => $val) {
# Ahora crearemos la fecha del tema
$fecha = $data['temas'][$k]['t_fecha'];
# Si no esta vacío hacemos lo siguiente...
if(!empty($fecha)) {
# Si es de este año no mostramos el "año", pero si es del año pasado si mostramos el "año"
$y = (strftime('%Y', $fecha) === date('Y')) ? '' : strftime(', %Y', $fecha);
# Concatenamos el año
$data['temas'][$k]['fecha'] = ucfirst(strftime("%B %d" . $y, $fecha));
}
# Ceamos el titulo
$data['temas'][$k]['titulo'] = $data['temas'][$k]['t_titulo'];
# Ceamos el titulo
$data['temas'][$k]['cat'] = $data['temas'][$k]['s_nombre'];
# Creamos la url
$data['temas'][$k]['url'] = $tsCore->settings['url'] . '/comunidades/' . $data['temas'][$k]['c_nombre_corto'] . '/' . $data['temas'][$k]['t_id'] . '/' . $tsCore->setSEO($data['temas'][$k]['t_titulo']) . '.html';
}
return $data;
}
Espero que se pueda entender, ya que trato de se lo más explicativo posible

3 - Luego reemplazaremos el contenido del archivo m.home_temasrecientes.tpl por esto 
<div class="iebox">
<div class="boxtes">
<h2><i class="fas fa-star-half-alt"></i> Temas Recientes</h2>
</div>
<br>
<div class="secomo">
{if $tsTemitasrecienteshome}
{foreach from=$tsTemitasrecienteshome.temas item=c}
<div style="display:flex;justify-content:flex-start;align-items:center">
<img src="{$tsConfig.url}/files/avatar/{$c.user_id}_50.jpg" style="border-radius:5px;margin-right:4px;" alt="{$c.user_name}">
<div>
<span style="display:block;font-size:12px">{$c.c_nombre} > {$c.cat}</span>
<h4>
<!-- Se cambio "limit" a "truncate" -->
<a class="topes" {if $i+1 == 1}style="border-top: 0;"{/if} href="{$c.url}">
{$c.titulo|truncate:50}</a>
</h4>
<span class="d-block">{$c.fecha}</span>
</div>
</div>
{/foreach}
{else}
<div class="nada-blanco">No hay Temas recientes</div>
{/if}
</div>
</div>

Espero que les agrade este cambio, luego en el caso que sea con determinada subcategoría me avisan!

4 puntos
5
Loading...

¿Como comentar?

Para poder comentar necesitas estar Registrado.


Si ya eres miembro ingresa a tu cuenta.