Dotclear

Vous n'êtes pas identifié(e).

Annonce

#1 2018-03-16 16:52:56

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Utiliser EntryFirstImageHelper dans un _public.php

Bonjour

Je cherche à récupérer l'url de la première image de chacun des 5 derniers billets d'un autre blog que le blog courant

Pour cela, j'ai créé une balise de template dans le fichier _public.php de mon thème avec ceci :

$core->tpl->addValue('myTourismPostsList',array('b4businessTpl','myTourismPostsList'));
class b4businessTpl {
    public static function myTourismPostsList()
	{
		return
		'<?php $thisblog = $core->blog->id;
		$core->setBlog(\'var\');
		$params[\'no_content\'] = false;
		$params[\'limit\'] = \'5\';
		$params[\'post_type\'] = array(\'post\');
		$params[\'post_status\'] = \'1\';
		$rs = $core->blog->getPosts($params);

		$size = \'m\';
                $no_tag = 1;
                $with_category = 0;
                $class = \'\';
                $content_only = 0;
                $cat_only = 0;

		$res = \'\';
		while ($rs->fetch()) {
                        $res .= \'<p>titre : \'.html::escapeHTML($rs->post_title);
                        $res .= \' - image : \'.context::EntryFirstImageHelper($size, $no_tag,$with_category,$class,$content_only,$cat_only).\'</p>\';
		}
		$core->setBlog($thisblog);
		unset ($params);
		echo $res;
		?>';
	}
}

Le titre de chacun des 5 derniers billets du blog voulu est bien récupéré, preuve que ça marche à moitié, mais le code suivant ne retourne rien

context::EntryFirstImageHelper($size, $no_tag,$with_category,$class,$content_only,$cat_only)

(cette fonction est bêtement déduite de EntryFirstImage dans /dotclear/inc/public/class.dc.template.php et lib.tpl.context.php)

Une âme charitable pourrait m'aider à trouver la bonne syntaxe ?

Merci tout plein d'avance :)

Hors ligne

#2 2018-03-16 16:54:47

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Utiliser EntryFirstImageHelper dans un _public.php

PS : Juste pour info, si j'essaie de récupérer les images avec la balise tpl du plugin listImages, ça fonctionne bien :

$res .= \'<p>\'.tplEntryImages::EntryImagesHelper($size, $html_tag, $link, $exif, $legend, $bubble, $from, $start, $length, $class, $alt, $img_dim, $def_size, $rs).\'</p>\';

sauf que cette balise n'a pas d'option pour retourner l'url seule...

Hors ligne

#3 2018-03-16 17:42:43

Franck
Footer de merde
Lieu : Paris
Inscription : 2004-11-09
Site Web

Re : Utiliser EntryFirstImageHelper dans un _public.php

À première vue (du code de Dotclear) c'est un peu normal (j'ai pas beaucoup exploré) vu que context::EntryFirstImageHelper() s'appuie sur l'URL du blog courant pour bosser, si tu veux les images d'un autre blog, ça risque de faire des trucs bizarres :-)


Dotclear addicted since 2004

Hors ligne

#4 2018-03-16 17:44:27

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Utiliser EntryFirstImageHelper dans un _public.php

Euh... oui mais non, je suis dans le bon blog avec $core->setBlog(\'var\'); au début de mon code (var est l'identifiant du blog)

D'ailleurs les titres des billets sont corrects

Hors ligne

#5 2018-03-16 17:45:47

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Utiliser EntryFirstImageHelper dans un _public.php

...et avec tplEntryImages::EntryImagesHelper ça marche...

Hors ligne

#6 2018-03-16 18:00:55

Franck
Footer de merde
Lieu : Paris
Inscription : 2004-11-09
Site Web

Re : Utiliser EntryFirstImageHelper dans un _public.php

Arf :-p


Dotclear addicted since 2004

Hors ligne

#7 2018-03-16 18:04:31

Franck
Footer de merde
Lieu : Paris
Inscription : 2004-11-09
Site Web

Re : Utiliser EntryFirstImageHelper dans un _public.php

En attendant une version de listImages qui permettent de récupérer uniquement l'URL de l'image, un petit preg_match() kivabien sur le retour de tplEntryImages::EntryImagesHelper() devrait te permettre de récupérer ça, non ?


Dotclear addicted since 2004

Hors ligne

#8 2018-03-16 18:20:00

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Utiliser EntryFirstImageHelper dans un _public.php

Oui, c'est une bonne piste, je vais juste faire ça, sauf si tu sors rapidement une nouvelle version de ton plougue ^^

Merci pour l'astuce ;)

Hors ligne

#9 2018-03-16 19:41:42

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Utiliser EntryFirstImageHelper dans un _public.php

Ça marche parfaitement \o/

$string = tplEntryImages::EntryImagesHelper($size, $html_tag, $link, $exif, $legend, $bubble, $from, $start, $length, $class, $alt, $img_dim, $def_size, $rs);
$url = preg_replace(\'#.*src="([^\"]+)".*#\', \'\1\', $string);

$url contient l'url de l'image

Je cherche maintenant à récupérer les 250 premiers caractères de chacun des billets. si je coince je reviens illico ;)

Hors ligne

Vous n'êtes pas identifié(e).

Pied de page des forums

Sites map