I totally agree with the namespacing thing. I wish core would practice what it preaches just a bit better with these kinds of functions.<div><br></div><div>But, my example was intentionally complex. Basic examples are pretty straightforward:</div>
<div><br></div><div>&lt;?php submit_button( $button_text, $button_type, $name, $wrapper ); ?&gt;</div><div><br></div><div>$button_text: button text</div><div>$button_type: &#39;primary&#39; or &#39;secondary&#39; (actually, quite useful, as it helps ensure button style fits WP UI)</div>
<div>$name: name attribute</div><div>$wrapper: (boolean) whether or not to wrap button in &lt;p&gt; tags.</div><div><br></div><div>So:</div><div><br></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;">
<div>&lt;?php submit_button( &quot;Save Settings&quot;, &#39;primary&#39;, &#39;submit&#39; ); ?&gt;</div><div>&lt;?php submit_button( &quot;Reset Defaults&quot;, &#39;secondary&#39;, &#39;reset&#39; ); ?&gt;</div></blockquote>
<div><br></div><div>Is all you really need.</div><div><br></div><div>And in the first case, you can even get away with:</div><div><br></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;">
<div>&lt;?php submit_button(); ?&gt;</div></blockquote><div><br></div><div>No need to pass any arguments whatsoever.</div><div><br></div><div>If I had to guess, I would guess that the objective here is to abstract away as much of the settings form markup as absolutely possible - which is an objective that I would actually agree with. By abstracting the form markup, it becomes MUCH easier to make UI changes in the future, in a way that will ensure forward-compatibility for existing code.</div>
<div><br></div><div>Chip</div><div><br><div class="gmail_quote">On Mon, Jul 25, 2011 at 9:39 PM, Doug Stewart <span dir="ltr">&lt;<a href="mailto:zamoose@gmail.com">zamoose@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Okay, need to get this off my chest:<br>
This particular example + the checked()/selected() stuff has been<br>
driving me batty. They&#39;re examples of over-complication on WordPress&#39;<br>
part when perfectly viable pure PHP/HTML solutions are tried, true,<br>
tested and far more approachable.<br>
<br>
I mean, seriously, look at Chip&#39;s code (and not to single him out,<br>
it&#39;s just the only code to point to here): it&#39;s complicated and<br>
unusable/unapproachable without an XRef for the possible arguments. At<br>
least in the past, a person with PHP experience had a chance to read a<br>
simple ternary statment (in the case of checked()/selected()) or a<br>
person with HTML savvy can read the plain meaning of the Submit<br>
buttons. It&#39;s cleverness at the expense of readability/approachability<br>
and I think it&#39;s a mistake.<br>
<br>
Plus they&#39;re not even namespaced.<br>
<br>
Gah.<br>
<br>
Just my $.02.<br>
<div><div></div><div class="h5"><br>
On Mon, Jul 25, 2011 at 12:58 PM, Chip Bennett &lt;<a href="mailto:chip@chipbennett.net">chip@chipbennett.net</a>&gt; wrote:<br>
&gt; The submit_button() function is flexible enough to handle resetting to<br>
&gt; defaults. :)<br>
&gt; For example, here&#39;s my old code from Oenology (note that I pass a &quot;tab&quot; name<br>
&gt; to the button name attribute):<br>
&gt;<br>
&gt; &lt;input name=&quot;theme_oenology_options[submit-&lt;?php echo $tab; ?&gt;]&quot;<br>
&gt; type=&quot;submit&quot; class=&quot;button-primary&quot; value=&quot;Save Settings&quot; /&gt;<br>
&gt; &lt;input name=&quot;theme_oenology_options[reset-&lt;?php echo $tab; ?&gt;]&quot;<br>
&gt; type=&quot;submit&quot; class=&quot;button-secondary&quot; value=&quot;Reset Defaults&quot; /&gt;<br>
&gt;<br>
&gt; And here&#39;s the replacement code:<br>
&gt;<br>
&gt; &lt;?php submit_button( __( &#39;Save Settings&#39;, &#39;oenology&#39; ), &#39;primary&#39;,<br>
&gt; &#39;theme_oenology_options[submit-&#39; . $tab . &#39;]&#39;, false ); ?&gt;<br>
&gt; &lt;?php submit_button( __( &#39;Reset Defaults&#39;, &#39;oenology&#39; ), &#39;secondary&#39;,<br>
&gt; &#39;theme_oenology_options[reset-&#39; . $tab . &#39;]&#39;, false ); ?&gt;<br>
&gt;<br>
&gt; The rendered output is exactly the same in both cases.<br>
&gt; Assuming that your &quot;reset defaults&quot; functionality looks at the NAME<br>
&gt; attribute as part of the $_POST data passed to $input, then you&#39;re good to<br>
&gt; go.<br>
&gt; Chip<br>
&gt;<br>
&gt; On Mon, Jul 25, 2011 at 11:44 AM, George Mamadashvili<br>
&gt; &lt;<a href="mailto:georgemamadashvili@gmail.com">georgemamadashvili@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hello Chip.<br>
&gt;&gt; I noticed that function too and liked it, but if theme author what to<br>
&gt;&gt; provide &quot;Reset to Default&quot; button, does it still need to be hard-coded? I<br>
&gt;&gt; had no to dig in this function, can we this function for reset button too?<br>
&gt;&gt; Best<br>
&gt;&gt; George<br>
&gt;&gt;<br>
&gt;&gt; On Mon, Jul 25, 2011 at 8:25 PM, Chip Bennett &lt;<a href="mailto:chip@chipbennett.net">chip@chipbennett.net</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Good morning developers/reviewers!<br>
&gt;&gt;&gt; Just a note, from something that I noticed being used in Twenty Eleven:<br>
&gt;&gt;&gt; the submit_button() function, which replaces hard-coded form submit buttons.<br>
&gt;&gt;&gt; I would strongly recommend making use of it in Theme Settings Page forms;<br>
&gt;&gt;&gt; as with other &quot;doing things the core-supported way&quot; criteria, I would expect<br>
&gt;&gt;&gt; this one to show up in the Guidelines at some point in the future.<br>
&gt;&gt;&gt; Chip<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; theme-reviewers mailing list<br>
&gt;&gt;&gt; <a href="mailto:theme-reviewers@lists.wordpress.org">theme-reviewers@lists.wordpress.org</a><br>
&gt;&gt;&gt; <a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; theme-reviewers mailing list<br>
&gt;&gt; <a href="mailto:theme-reviewers@lists.wordpress.org">theme-reviewers@lists.wordpress.org</a><br>
&gt;&gt; <a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; theme-reviewers mailing list<br>
&gt; <a href="mailto:theme-reviewers@lists.wordpress.org">theme-reviewers@lists.wordpress.org</a><br>
&gt; <a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
</div></div>--<br>
<font color="#888888">-Doug<br>
</font><div><div></div><div class="h5">_______________________________________________<br>
theme-reviewers mailing list<br>
<a href="mailto:theme-reviewers@lists.wordpress.org">theme-reviewers@lists.wordpress.org</a><br>
<a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
</div></div></blockquote></div><br></div>