[pmwiki-users] Can a markup function set $HTMLHeaderFmt?

SteP step.list+pmwiki at gmail.com
Wed Sep 6 17:59:01 CDT 2017


I haven't scripted PmWiki in quite a while, now I need to add a recipe to an
older pmwiki version 2.2.43 
and I'm having second thoughts. Can a markup function set $HTMLHeaderFmt? Can it always or are there 
restrictions?  I ask because what I see happening with this recipe 
http://www.pmwiki.org/wiki/Cookbook/AddThisWidget-Talk (the one by Carlos AB) is weird and puzzles 
me. If I put the markup (:addThis :) directly in a wiki page then all is well: a "Share" button is rendered 
and hovering over it pops up a menu from http://s7.addthis.com/js/250/addthis_widget.js. However, if I 
put the same markup in an included file, such as Site.Sidebar, or Main.GroupHeader, 
the button is still 
rendered but addthis_widget.js isn't downloaded at all, so the menu is missing. This happens, I think, 
because the element $HTMLHeaderFmt['addthis'] == "\n" (see the code below) instead of carrying the 
<script> tags that should go into the <header>.  What's going on?  Thank you in advance for your 
guidance.

The relevant recipe code is summarized like so:

SDV($AddThisProfile , "<script type='text/javascript'>
var addthis_config = {
     pubid: 'profile'
</script>
");
SDVA($AddThisButton , array(
"<a class='addthis_button' 
   href='http://www.addthis.com/bookmark.php?v=400&pubid=_profile_'>
   <img src='http://s7.addthis.com/static/btn/sm-share-en.gif' 
      width='83' height='16' alt='Bookmark and Share' style='border:0'/>
</a>"
));
SDV($AddThisMenu , "<script type='text/javascript' 
  src='http://s7.addthis.com/js/400/addthis_widget.js#pubid=profile'></script>
");

markup('addthis','directives',
  '/\\(:addthis\\s(.*):\\)/ei',"AddThisWidget(\$pagename, PSS('$1'))");

function AddThisWidget($pn,$a){
global $AddThisProfile,$AddThisButton,$AddThisShare,$AddThisMenu,$HTMLHeaderFmt;

$args = ParseArgs($a);
...
$HTMLHeaderFmt['addthis'] = "\n".$AddThisProfile.$AddThisShare.$AddThisMenu;

return Keep($AddThisButton[$button]);
}




More information about the pmwiki-users mailing list