¡Bienvenido a PHPost!

Para participar en el foro, descargar complementos y acceder al chat, necesitas una cuenta activa.

Descarga Risus Nova 2.0   (Ver notas de la versión) (ACT-15/06/2026)

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

COMPLEMENTOS Portadas de posts automáticas (Act 1.3)
#1

3
Mejor respuesta del mensaje Portadas de posts automáticas (Act 1.3)
[img]Registrate o inicia tu sesión para ver este contenido[/img]


Funcion:
Obtiene la segunda (2) imagen (si existe) que tenga el cuerpo del post, porque generalmente en un post colocan primero una imagen de bienvenida y luego un cover, imagen demo, etc que sería lo mejor para mostrar en la portada.



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

Antes de la ultima 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] 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;



Con esto tendremos la función en el núcleo del script para poderla globalizar tanto en posts como en otros lugares, por ejemplo crear eventos en el calendario.


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']);
  } 


Con esto obtenemos la imagen extraida del post.

Ahora la variable obtenida para la url de la imagen sería {$p.post_cover} como muchos usan temas diferentes dependerá de su plantilla donde tengan que editar lo siguiente, generalmente será el archivo m.home_last_posts.tpl y la imagen sería:

<img src="{if $p.post_cover}{$p.post_cover}{else}{$tsConfig.images}/no-cover.jpg{/if}" width="80" heiht="80" /> 

Como pueden notar hay una condición que, si existe la imagen la muestra, de lo contrario mostrara una imagen predeterminada llamada [b]no-cover.jpg pero esto es opcional si la quieren mostrar porque también puede ser una imagen dependiendo de su categoría como se muestra en Taringa.[/b]



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


Compartir en:

Mensajes en este tema
Portadas de posts automáticas (Act 1.3) - por Chctrpgo - 01-25-2021, 03:12 PM
RE: Portadas de posts automáticas (Act 1.3) - por uBwin - 04-12-2024, 06:12 PM

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)