Vous n'êtes pas identifié(e).
13 février 2024 Sortie de Dotclear 2.29
Par contre cela ne change rien au fait que la troncature des flux fait sauter les balises html du content dans le fichier xml du feed ! Il n'y a que moi qui y voit un inconvénient ?
Je suis un peu comme toi je commence juste un plugin utilisant un autre rsExtPosts coté publique et je découvre au fur et à mesure les limites!
Cordialement,
_JC | Intérimaire | En mode invisible
Hors ligne
Je suis un peu comme toi je commence juste un plugin utilisant un autre rsExtPosts coté publique et je découvre au fur et à mesure les limites!
Au départ je n'avais vu que l'écrasement comme problème, maintenant je découvre le tronquage des flux, mais j'ai la solution pour ce deuxième problème, il faut juste implémenter sa propre routine de tronquage ... ou plus simplement interdire ponctuellement le tronquage des billets devinette (pour mon plug)
Passez à l'occasion si vous n'avez pas peur de vous faire mal aux yeux http://akhthot.free.fr
Hors ligne
Tadaaaaaaaaaa je crois que j'ai trouvé une solution "bizarre" pour empiler des behaviors sur "coreBlogGetPosts".
Ici on part du principe que tout se passe coté public, on va donc mettre tout ça dans le fichier "_public.php" et étendre la class "rsExtPostPublic".
$core->addBehavior('coreBlogGetPosts',array('monPlougPublicBehaviors','coreBlogGetPosts'));
class monPlougPublicBehaviors
{
// Fonction appelé depuis le behavior coreBlogGetPost
public static function coreBlogGetPosts(&$rs)
{
// J'ajoute ici une mémoire du précédent appelle à "rs->extend()"
$GLOBALS['beforeMonPlougRsExt'] = $rs->extensions();
// On étend les résultats de $core->blog->getPosts()
$rs->extend('rsExtMonPlougPosts');
}
}
class rsExtMonPlougPosts extends rsExtPostPublic
{
// Cette fonction recherche si une précédente fonction existe et l'appelle
public static function monPlougBrother($type,$args)
{
$func = isset($GLOBALS['beforeMonPlougRsExt'][$type]) ?
$GLOBALS['beforeMonPlougRsExt'][$type] :
array('rsExtPostPublic',$type);
return call_user_func_array($func,$args);
}
// Je fais ma sauce normalement (ici sur le contenu du billet)
public static function getContent(&$rs,$absolute_urls=false)
{
// Si c'est ce que je cherche, je modifie le contenu
if ($rs->post_title == 'ce que je veux')
{
return 'youpiii';
}
// Si ma sauce ne me plaid pas, je vais cherche l'appelle précèdent
else
{
return self::monPlougBrother('getContent',array(&$rs,$absolute_urls));
}
}
}
Il faut que le deuxième paramètre passé à "monPlougBrother" soit toujours un tableau car suivant les fonctions ils y a plusieurs paramètres.
Il faut aussi que chaque plugin qui utilise ce hack est un nom diffèrent pour la fonction "monPlougBrother".
J'ai testé avec deux plugin faisant apelle à cette méthode, le tout mélangé avec des billets normaux.
Pour voir un résultat je test un plugin de planet de blogs combiné avec un plugin de planet de flux sur un blog normale ici: http://zoneclear.org ( Faites pas gaffe c'est des essais! )
Cordialement,
_JC | Intérimaire | En mode invisible
Hors ligne
Vous n'êtes pas identifié(e).