>Perhaps you can try something analogous to what's suggested here:
>https://www.mediawiki.org/wiki/Manual_talk:Hooks/ParserBeforeStrip#Sanity_Check

Interesting enough, this trick does not prevent the problem of the callback 
running
twice on save.  If I put as the first lines of the callback:

static $hasRun = false;
if ($hasRun) {
  error_log("already ran");
  return '';
}
$hasRun = true;
error_log('first time');

and put my tag on a page and save it, I get two "first time" messages in the 
error log.

DanB

-----Original Message-----
From: mediawiki-l-boun...@lists.wikimedia.org 
[mailto:mediawiki-l-boun...@lists.wikimedia.org] On Behalf Of Nathan Larson
Sent: Thursday, December 05, 2013 2:51 PM
To: MediaWiki announcements and site admin list
Subject: Re: [MediaWiki-l] Preventing a tag extension from rendering twice on 
save?

On Thu, Dec 5, 2013 at 2:32 PM, Daniel Barrett <d...@vistaprint.com> wrote:

> I've noticed that parser tag extensions render twice when an article 
> is saved from the edit page.
> All I did was write a parser tag <foo> that runs error_log('foo').
> It prints once when I hit <foo/> on a page, but twice when saving the 
> page from the wiki editor.
>
> Is there a way to prevent this double-running on save?
> Even way for the extension itself to detect it's on the first (or 
> second) run and suppress itself?
>
> I have an extension that is heavyweight, making a SQL query to an 
> external database, and I don't want to run twice.
>
> Thanks for any insights!
> DanB


_______________________________________________
MediaWiki-l mailing list
MediaWiki-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
_______________________________________________
MediaWiki-l mailing list
MediaWiki-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-l

Reply via email to