<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">I'm working on converting one of my simpler recipes to an <a href="https://www.pmwiki.org/wiki/Cookbook/ExtensionDesign">Extension</a><br>(and would like to convert them all).<br><br>I've got a few questions.<br><br>My recipes tend to have the following layout<br>#----------------------------------------------------------<br>// executable code run when the recipe file is included from config.pgp, consisting of:<br>// this includes, but may not be limited to<br># initialisation, including:<br>## setting the recipe version<br>## calling the markup function to register the page markup and the recipe's markup processing function</div><div dir="ltr"><br>return; # having finished the setup</div><div dir="ltr"><br>// callable (non-executable) code, for example:<br># recipe's markup code processing function<br># ancillary functions supporting the recipe's markup processing function<br>#-------------------------------------------------------<br><br>In the <a href="https://www.pmwiki.org/wiki/Cookbook/ExtensionDesign">Extension Design</a> an example is given of <br>function MyExtensionInit($pagename) {...}<br> MyExtensionInit($pagename);<br><br>What is special about this and how does it differ from the executable code described in the recipe layout above?</div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div>In one of the new extensions there is the line:</div><div>$EnableBootstrapIcons = 1;<br></div><div><br></div><div>Is this special in some way, e.g. generic and used for extension management, or is it specific to the recipe?</div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr"><br><br>It's not clear to me where in the distribution an extension distributes or obtains initial values or configuration, e.g.<br><br>SDVA($MyExtDefaultConf, [<br>  'var1' => 'value1',<br>  'var2' => 5,<br>]);<br><br>or<br><br>SDV($MyExtDefaultConfVal, 'DefaultVal');<br><br>I surmise that there are two possibilities:<br>1) from a form exposed via the Extension Hub Page, <br><br>2) from somewhere else.<br><br>What I am looking for is the equivalent of a file of key value pairs.<br>One use case is to provide an API key that I do not want exposed or visible to the world.<br>This might have a format per line of (for SDV)<br>key=ka val=vb<br>or<br>key=ka val=[vb,"v c"]</div><div dir="ltr">or some other syntax: ka=va, ka=[vb,"v c"]<br><br>and for SDVA<br>key=[ka,kb] val=vb<br>or<br>key=[ka,kb] val=[vb,"v c"]</div><div dir="ltr">or some other syntax: [ka,kb]=[vb,"v c"]<br><br><br><br>Lastly, I assume that the values of the directory and the extension php file name are case sensitive.<div>I ask this because I use windows, and also because directive names themselves are not case sensitive, and I observe that (almost all) recipe filenames are fully lower case.</div><div>Yet for some reason it seems better to have a directory name (as shown in the example "MyCoolExtension") that is TitleCased.</div><div><br></div><div>thanks in advance</div><div><br></div><div>Simon</div></div></div></div></div>