Dotclear

Ticket #243 (closed enhancement: fixed)

Opened 17 years ago

Last modified 17 years ago

Ajouter des comportements dans rsExtPost::getContent et rsExtPost::getExcerpt

Reported by: sacha Owned by: olivier
Priority: lowest Milestone: 2.1
Component: module:core Version: 2.0
Severity: minor Keywords:
Cc:

Description

Pour les plugins qui transforment le contenu au moment de son affichage, il serait très intéressant d'ajouter des comportements qui permettront aux plugins de modifier tour à tour le contenu à afficher.

Actuellement, si des plugins rajoutent des extensions recordset pour surcharger $rs->getContent(), c'est l'extension du dernier plugin qui sera utilisée, et toutes les autres ne seront pas prises en compte (pas d'émoticones donc).

Le diff proposé en pièce jointe permet aux plugins de modifier le contenu sans se marcher sur les pieds. Voici un exemple d'utilisation :

$core->addBehavior('rsExtPostGetContent',array('MyPlugin','rsExtPostGetContent'));
$core->addBehavior('rsExtPostGetExcerpt',array('MyPlugin','rsExtPostGetExcerpt'));

class MyPlugin
{
	public static function rsExtPostGetContent(&$rs)
	{
		$rs->post_content_xhtml = strtolower($rs->post_content_xhtml);
	}
	
	public static function rsExtPostGetExcerpt(&$rs)
	{
		$rs->post_excerpt_xhtml = strtoupper($rs->post_excerpt_xhtml);
	}
}

P.S. Ce sujet a été initialement évoqué sur le forum :  http://forum.dotclear.net/viewtopic.php?id=33484

Attachments

r1848.diff Download (884 bytes) - added by sacha 17 years ago.
Ajout des behaviors pour modifier le contenu au moment de l'affichage

Change History

Changed 17 years ago by sacha

Ajout des behaviors pour modifier le contenu au moment de l'affichage

comment:1 Changed 17 years ago by olivier

  • Priority changed from normal to lowest
  • Status changed from new to assigned
  • Severity changed from normal to minor
  • Milestone changed from 2.0 to 2.1

comment:2 Changed 17 years ago by sacha

Désolé, le diff proposé ne marche pas, ce n'était qu'une vague illusion.

Au début, j'ai essayé d'affecter la valeur de $rs->post_content_xhtml à une variable puis passer cette variable en argument du behavior, mais je n'ai pas réussi à modifier le contenu de cette variable en utilisant le passage par référence dans ma fonction du plugin.

J'ai l'impression que le passage par référence ne fonctionne que pour des objets dans le système de behaviors. Je n'ai pas compris pourquoi.

comment:3 Changed 17 years ago by olivier

C'est la possibilité de chaîner les extensions de recordset qui est nécessaire.

comment:4 Changed 17 years ago by olivier

  • Version changed from 2.0 RC1 to 2.0

Il faudrait en fait avoir un système de filtre sur toutes les valeurs templates. Il y a plus ou moins moyen en utilisant getFilter, faut voir.

comment:5 Changed 17 years ago by olivier

  • Status changed from assigned to closed
  • Resolution set to fixed

(In [2449]) Added publicBeforeContentFilter and publicAfterContentFilter behaviors. Closes #243.

Note: See TracTickets for help on using tickets.

Sites map