SLB: Notes – Admin: Option Page Building
Goal
- Allow
Optionsclass to handle as much of option-centric operations as possible
Requirements
- Register option building context/layouts
- Including using callbacks
- Pass layout/context when
options->build()called - Retrieve context properties
- Build options according to properties
Issues
add_settings_section()only works on options pages in Settings admin section
Methodology
General
- Pass options instance as reference
- So that settings are properly saved
- Build page
- Build Form
?How/where should form wrapper for options be generated?OptionsorAdminclass?A:Optionsclass+Validation method will work in tandem with form building- Check for form submission
- Validate submission
- Save options
Passing options as reference (options)
- Callback/options in single parameter
- Example
array( "options" => &$options, "callback" => $this->m('callback') ) +Flexible: Pass options and/or callback (or neither)-More typing for each menu- Must creating associative array no matter what to pass any values
~Similar to title (title, menu, etc.)+Cuts down on parameter count: by grouping parameters in array
Registering Contexts/Layouts
? Context or layout? Which to extend? (Options)
- Context
- Register context-specific layouts, values, defaults, etc.
+Contains layouts & more-Must be developed from scratch?Overlapping existing layout functionality?- Layout
-Currently implemented for field items, not collections- Solution needs to allow for collection-wide processing
- Example: Admin layout
{form_start}{collection_items}{submit_button}{form_end} - Need to register handlers for various placeholders
- Layout passed to
options->build()as argument$options->build(array('layout' => 'admin'));