summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorEvan Prodromou <evan@prodromou.name>2008-06-30 13:03:42 -0400
committerEvan Prodromou <evan@prodromou.name>2008-06-30 13:03:42 -0400
commitc64f137497cb2963445b34e17ed45a3044135bab (patch)
tree88e9784ab3a4ffec3ba3670843eb79ec44752571 /lib
parent8336a7755e0576c1e60c1ab7336d006fd3025615 (diff)
refactor common behaviour in settings pages
darcs-hash:20080630170342-84dde-5d7feb88a0a707b24c8070802a7ec99dd1f35687.gz
Diffstat (limited to 'lib')
-rw-r--r--lib/settingsaction.php22
-rw-r--r--lib/util.php9
2 files changed, 31 insertions, 0 deletions
diff --git a/lib/settingsaction.php b/lib/settingsaction.php
index 2a80c0e31..eca5e9352 100644
--- a/lib/settingsaction.php
+++ b/lib/settingsaction.php
@@ -55,6 +55,28 @@ class SettingsAction extends Action {
}
}
+ function form_header($title, $msg=NULL, $success=false) {
+ common_show_header($title,
+ NULL,
+ array($msg, $success),
+ array($this, 'show_top'));
+ }
+
+ function show_top($arr) {
+ $msg = $arr[0];
+ $success = $arr[1];
+ if ($msg) {
+ $this->message($msg, $success);
+ } else {
+ $inst = $this->get_instructions();
+ $output = common_markup_to_html($inst);
+ common_element_start('div', 'instructions');
+ common_raw($output);
+ common_element_end('div');
+ }
+ $this->settings_menu();
+ }
+
function settings_menu() {
# action => array('prompt', 'title')
static $menu =
diff --git a/lib/util.php b/lib/util.php
index f3ab42ea9..9e1b1a8c9 100644
--- a/lib/util.php
+++ b/lib/util.php
@@ -1106,3 +1106,12 @@ function common_confirmation_code($bits) {
}
return $code;
}
+
+# convert markup to HTML
+
+function common_markup_to_html($c) {
+ $c = preg_replace('/%%action.(\w+)%%/e', "common_local_url('\\1')", $c);
+ $c = preg_replace('/%%doc.(\w+)%%/e', "common_local_url('doc', array('title'=>'\\1'))", $c);
+ $c = preg_replace('/%%(\w+).(\w+)%%/e', 'common_config(\'\\1\', \'\\2\')', $c);
+ return Markdown($c);
+}