Phpost

Versión completa: Portadas de posts automáticas
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
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:
Código PHP:
/*
     * 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:
Código PHP:
$lastPosts['data'] = result_array($query); 


Debajo agregar:
Código PHP:
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:
Código PHP:
{$p.post_cover


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

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


Ejemplo en el tema DEFAULT

Buscar:
Código PHP:
<{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:
Código PHP:
{$p.post_title|truncate:50


Agregar:
Código PHP:
<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í:
Código PHP:
<{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: kmario19