<div dir="ltr">Thanks very much for this.<div><br></div><div>It turns out that, when working on the totalcounter recipe,</div><div>pages that don't exist were being counted.</div><div><br></div><div>There appear to be two reasons for this.</div><div><br></div><div>1) the wiki is being called with 'made up names'</div><div>2) the wiki is being called with names of pages that used to exist, but have been renamed (I'm guessing that this is because those names still exist in the recent changes lists).</div><div><br></div><div>thanks again</div><div><br></div><div>Simon</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 4 Nov 2024 at 21:37, Petko Yotov <<a href="mailto:5ko@5ko.fr">5ko@5ko.fr</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 04/11/2024 09:14, Simon wrote:<br>
> In a recipe how do I test<br>
> 1) if a page of a given name exists?<br>
<br>
   if(PageExists($pagename)) {<br>
     # page exists in at least one of the page store classes<br>
   }<br>
<br>
> 2) if the called pagename of the current page and action exists (e.g.<br>
> NoGroup/Nopage?action=browse)<br>
<br>
1. To get the current $pagename, from a Markup function you can do:<br>
<br>
   extract($GLOBALS['MarkupToHTML']);<br>
<br>
This creates a local variable $pagename within the function. This <br>
$pagename is what MarkupToHTML() was called with.<br>
<br>
This is recommended if your recipe may need to work with recipes that <br>
export multiple pages like static websites, backups, PDF exports, or <br>
similar.<br>
<br>
If your function is registered as $MarkupDirectiveFunctions, the first <br>
argument is $pagename, it is what MarkupToHTML() was called with.<br>
<br>
If the recipe doesn't need to work when exporting multiple pages, you <br>
can set:<br>
<br>
   global $pagename;<br>
<br>
2. To test if the *current* action exists, check if <br>
$HandleActions[$action] exists and is callable. Both $HandleActions and <br>
$action are global variables.<br>
<br>
If it doesn't/isn't, then PmWiki should call $HandleActions['browse'].<br>
<br>
It may not be reliable to check if an action different from the current <br>
one exists, as some recipes are loaded conditionally.<br>
<br>
Petko<br>
</blockquote></div>