On Fri, Sep 19, 2014 at 8:31 AM, Randy Brown <ra...@brownragfilms.com> wrote:
> $num = rand ( 1, 1000 ); > SDVA($GUIButtons, array( > 'mybutton' => array(8000, "{(mymarkupexpression ".$num." "", > "")}\\nThe above number is ".$num."\\n", '$[Default text if none > selected]', > '$GUIButtonDirUrlFmt/mybuttonicon.png"$[DoXYZ]"','') > )); > $HTMLHeaderFmt['DoXYZ']= <<<EOF > <script type='text/javascript'><!-- > function DoXYZ() { > > I IMAGINE THERE IS A WAY TO DO THIS IN JAVASCRIPT > > return; > } > //--></script> > > EOF; > I don't think there's an easily configurable way to do this (i.e., nothing as simple as adding something to $GUIButtons - insButton() doesn't support executable javascript code due to quoting). However, in the spirit of fairly messy code that seems to work, try this in config.php: ===(snip)=== Markup('e_guibuttons', 'directives', '/\\(:e_guibuttons:\\)/e', "Keep(FmtPageName(GUIButtonCode(\$pagename), \$pagename).'<script type=\'text/javascript\'><!--\nInsertSpecialBtn();//--></script>')"); SDVA($HTMLHeaderFmt, array('guiedit2' => "<script type='text/javascript'> function DoSpecialBtn() { var num = Math.floor(Math.random()*10)+1; insMarkup('{(mymarkupexpression '+num+ ' \"', '\")}\\nThe above number is '+num, 'My text'); } function InsertSpecialBtn() { document.write('<a tabindex=\"-1\" r onclick=\"DoSpecialBtn()\">asdf</a>'); } </script>\n")); ===(snip)=== It basically overrides the e_guibuttons markup so it will add your special button immediately after the rest of the GUI buttons. Then it defines a short javascript with a function to insert the button and another function to calculate the random number and construct your text. Note that I've hardcoded the random number to be between 1 and 10, hardcoded the access key to r, hardcoded the button to the imaginative text of "asdf", etc - it's messy but should get you 90% of the way there. -Peter
_______________________________________________ pmwiki-devel mailing list pmwiki-devel@pmichaud.com http://www.pmichaud.com/mailman/listinfo/pmwiki-devel