¡Bienvenido a PHPost!

Para participar en el foro, descargar complementos y acceder al chat, es necesario tener una cuenta activa.
Por favor, regístrate utilizando un correo electrónico válido para completar la activación.

Descarga Risus Nova 2.0   (Ver notas de la versión) (ACT-16/06/2026- 00:00 ESP)

Regístrate Descargar Risus Nova
Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

COMPLEMENTOS Portadas de posts automáticas
#1

0
Función: Obtiene la segunda (2) imagen (si existe) que tenga el cuerpo del post.


Capturas
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]




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

Al final antes de la última llave } agregar:
/*
     * Sacar imagen del post
     * si hay mas de una imagen, tomamos la 2 (casi siempre la 1 es de "bienvenido")
     */
    
function extraer_img($texto) {
        
// del tipo [img=imagen] o [img]imagen[/img]
        
preg_match_all('/(\[img(\=|\]))((http|https)?(\:\/\/)?([^\<\>[:space:]]+)\.(jpg|jpeg|png|gif))(\]|\[\/img\])/i'$texto$imgs);
        
$total count($imgs[3]);
        
// Sacamos la mejor imagen posible ._.
        
$img = (count($imgs[3]) > 1) ? $imgs[3][1] : $imgs[3][0];    
        if(empty(
$img)) $img false;
        
//
        
return $img;
    } 


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

Buscar:
$lastPosts['data'] = result_array($query); 


Debajo agregar:
foreach($lastPosts['data'] as $id => $row){        
          
$lastPosts['data'][$id]['post_cover'] = $tsCore->extraer_img($lastPosts['data'][$id]['post_body']);
      } 


La variable obtenida para la URL de la imagen es:
{$p.post_cover


En m.home_last_posts.tpl --> themes --> default --> templates --> modules --> m.home_last_posts.tpl

Acomodan la imagen como quieran:
<img src="{if $p.post_cover}{$p.post_cover}{else}{$tsConfig.images}/no-portada.jpg{/if}"


Ejemplo en el tema DEFAULT

Buscar:
<{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


Antes de:
{$p.post_title|truncate:50


Agregar:
<img src="{if $p.post_cover}{$p.post_cover}{else}{$tsConfig.images}/no-portada.jpg{/if}" style="float: left;width: 45px;height: 33px;margin-right: 10px;"


Queda así:
<{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"><img src="{if $p.post_cover}{$p.post_cover}{else}{$tsConfig.images}/no-portada.jpg{/if}" style="float: left;width: 45px;height: 33px;margin-right: 10px;">{$p.post_title|truncate:50}</a


Suben una imagen con el nombre no-portada.jpg a la carpeta images --> themes --> default --> images --> no-portada.jpg para poner una portada por defecto.






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


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)