Quick Settings Pages
To both register settings for your MVC plugin and create a page in the "Settings" admin menu where users can adjust those settings, you can simply define a class that extends MvcSettings in app/settings/
.
The 'type'
attribute can be 'text'
, 'textarea'
, 'checkbox'
, or 'select'
(for which you should provide 'options'
or 'options_method'
).
<?php
// app/settings/documentation_settings.php
class DocumentationSettings extends MvcSettings {
var $settings = array(
'admin_version_id' => array(
'type' => 'select',
'label' => 'Admin Version',
'options_method' => 'get_all_versions',
'default' => 1
),
'public_version_id' => array(
'type' => 'select',
'label' => 'Public Version',
'options_method' => 'get_all_versions',
'default' => 1
),
'show_search_form' => array(
'type' => 'checkbox',
'default' => 1
),
'show_version_list' => array(
'type' => 'checkbox',
'default' => 0
)
);
public function get_all_versions() {
$documentation_version_model = mvc_model('DocumentationVersion');
$versions = $documentation_version_model->find();
$list = array();
foreach ($versions as $version) {
$list[$version->id] = $version->name;
}
return $list;
}
}
?>
To retrieve the value of the 'admin_version_id'
setting below, you would use mvc_setting()
like this:
<?php
$admin_version_id = mvc_setting('DocumentationSettings', 'admin_version_id');
?>