summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Almdal <tnalmdal@shaw.ca>2008-11-27 16:33:41 +0000
committerTim Almdal <tnalmdal@shaw.ca>2008-11-27 16:33:41 +0000
commit6bc9c5868b553a5b3fbbcfcd35587ca25135de38 (patch)
tree70769efc97f01ce42a7e19aec75680158bbe163e
parentbac4ff2046a9413ad53caca47842b63d3e5a5385 (diff)
Create a form_helper class containing the function Draw_Form so we don't have to always check to see if the DrawForm method is already defined in pages that could have multiple forms.
-rw-r--r--core/helpers/form_helper.php71
-rw-r--r--themes/default/views/form.html.php45
2 files changed, 72 insertions, 44 deletions
diff --git a/core/helpers/form_helper.php b/core/helpers/form_helper.php
new file mode 100644
index 00000000..1841b5d2
--- /dev/null
+++ b/core/helpers/form_helper.php
@@ -0,0 +1,71 @@
+<?php defined("SYSPATH") or die("No direct script access.");
+/**
+ * Gallery - a web based photo album viewer and editor
+ * Copyright (C) 2000-2008 Bharat Mediratta
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * This is the API for handling modules.
+ *
+ * Note: by design, this class does not do any permission checking.
+ */
+class form_helper_Core {
+ public static function Draw_Form($inputs, $level=1) {
+ $error_messages = array();
+ $prefix = str_repeat(" ", $level);
+
+ $output = array();
+ foreach ($inputs as $input) {
+ if ($input->type == 'group') {
+ $output[] = "$prefix<fieldset>\n";
+ $output[] = "$prefix <legend>$input->name</legend>\n";
+ $output[] = "$prefix <ul>\n";
+ $output[] =form_helper::Draw_Form($input->inputs, $level + 2);
+ $output[] = form_helper::Draw_Form($input->hidden, $level + 2);
+ $output[] = "$prefix </ul>\n";
+ $output[] = "$prefix</fieldset>\n";
+ } else {
+ if ($input->error_messages()) {
+ $output[] = "$prefix<li class=\"gError\">\n";
+ } else if ($input->type) {
+ $output[] = "$prefix<li>\n";
+ } else {
+ // no type means its a "hidden" so don't wrap it in <li>
+ }
+ if ($input->label()) {
+ $output[] = "$prefix {$input->label()}\n";
+ }
+ $output[] = "$prefix {$input->render()}\n";
+ if ($input->message()) {
+ $output[] = "$prefix <p>{$input->message()}</p>\n";
+ }
+ if ($input->error_messages()) {
+ foreach ($input->error_messages() as $error_message) {
+ $output[] = "$prefix <p class=\"gError\">\n";
+ $output[] = "$prefix $error_message\n";
+ $output[] = "$prefix </p>\n";
+ }
+ }
+ if ($input->type) {
+ $output[] = "$prefix</li>\n";
+ }
+ }
+ }
+ return implode("\n", $output);
+ }
+
+}
diff --git a/themes/default/views/form.html.php b/themes/default/views/form.html.php
index 41bdc0f9..802b1dd6 100644
--- a/themes/default/views/form.html.php
+++ b/themes/default/views/form.html.php
@@ -10,50 +10,7 @@ if ($title) {
print "<!-- unused title in form.html.php: $title -->";
}
-if (!function_exists("DrawForm")) {
- function DrawForm($inputs, $level=1) {
- $error_messages = array();
- $prefix = str_repeat(" ", $level);
-
- foreach ($inputs as $input) {
- if ($input->type == 'group') {
- print "$prefix<fieldset>\n";
- print "$prefix <legend>$input->name</legend>\n";
- print "$prefix <ul>\n";
- DrawForm($input->inputs, $level + 2);
- DrawForm($input->hidden, $level + 2);
- print "$prefix </ul>\n";
- print "$prefix</fieldset>\n";
- } else {
- if ($input->error_messages()) {
- print "$prefix<li class=\"gError\">\n";
- } else if ($input->type) {
- print "$prefix<li>\n";
- } else {
- // no type means its a "hidden" so don't wrap it in <li>
- }
- if ($input->label()) {
- print "$prefix {$input->label()}\n";
- }
- print "$prefix {$input->render()}\n";
- if ($input->message()) {
- print "$prefix <p>{$input->message()}</p>\n";
- }
- if ($input->error_messages()) {
- foreach ($input->error_messages() as $error_message) {
- print "$prefix <p class=\"gError\">\n";
- print "$prefix $error_message\n";
- print "$prefix </p>\n";
- }
- }
- if ($input->type) {
- print "$prefix</li>\n";
- }
- }
- }
- }
-}
-DrawForm($inputs);
+print form_helper::Draw_Form($inputs);
print($close);
?>