From 0ebc06b0a64608fa246d8d24a586f04cb6c62f41 Mon Sep 17 00:00:00 2001 From: e107steved Date: Mon, 30 Jul 2007 20:25:36 +0000 Subject: [PATCH] Bugtracker #3513 - show extended user fields in categories during signup --- .../shortcode/batch/signup_shortcodes.php | 56 +++++++++++++------ e107_handlers/user_extended_class.php | 8 +-- e107_themes/templates/signup_template.php | 19 ++++++- 3 files changed, 60 insertions(+), 23 deletions(-) diff --git a/e107_files/shortcode/batch/signup_shortcodes.php b/e107_files/shortcode/batch/signup_shortcodes.php index 78c8d3625..1339b2a87 100755 --- a/e107_files/shortcode/batch/signup_shortcodes.php +++ b/e107_files/shortcode/batch/signup_shortcodes.php @@ -11,9 +11,11 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_files/shortcode/batch/signup_shortcodes.php,v $ -| $Revision: 1.6 $ -| $Date: 2007-06-25 21:36:15 $ +| $Revision: 1.7 $ +| $Date: 2007-07-30 20:25:24 $ | $Author: e107steved $ +| +| Mods to show extended field categories +----------------------------------------------------------------------------+ */ if (!defined('e107_INIT')) { exit; } @@ -158,30 +160,52 @@ SC_END SC_BEGIN SIGNUP_EXTENDED_USER_FIELDS -global $usere, $tp, $SIGNUP_EXTENDED_USER_FIELDS, $EXTENDED_USER_FIELD_REQUIRED; +global $usere, $tp, $SIGNUP_EXTENDED_USER_FIELDS, $EXTENDED_USER_FIELD_REQUIRED, $SIGNUP_EXTENDED_CAT; $text = ""; -$extList = $usere->user_extended_get_fieldList(); - $search = array( '{EXTENDED_USER_FIELD_TEXT}', '{EXTENDED_USER_FIELD_REQUIRED}', '{EXTENDED_USER_FIELD_EDIT}' ); -foreach($extList as $ext) + +// What we need is a list of fields, ordered first by parent, and then by display order? +// category entries are `user_extended_struct_type` = 0 +// 'unallocated' entries are `user_extended_struct_parent` = 0 + +// Get a list of defined categories +$catList = $usere->user_extended_get_categories(FALSE); +// Add in category zero - the 'no category' category +array_unshift($catList,array('user_extended_struct_parent' => 0, 'user_extended_struct_id' => '0')); + + + +foreach($catList as $cat) { - if($ext['user_extended_struct_required'] == 1 || $ext['user_extended_struct_required'] == 2) - { - $replace = array( - $tp->toHTML($ext['user_extended_struct_text'], '', 'emotes_off, defs'), - ($ext['user_extended_struct_required'] == 1 ? $EXTENDED_USER_FIELD_REQUIRED : ''), - $usere->user_extended_edit($ext, $_POST['ue']['user_'.$ext['user_extended_struct_name']]) - ); - $text .= str_replace($search, $replace, $SIGNUP_EXTENDED_USER_FIELDS); - } + $extList = $usere->user_extended_get_fieldList($cat['user_extended_struct_id']); + + $done_heading = FALSE; + + foreach($extList as $ext) + { + if($ext['user_extended_struct_required'] == 1 || $ext['user_extended_struct_required'] == 2) + { + if(!$done_heading && ($cat['user_extended_struct_id'] > 0)) + { // Add in a heading + $text .= str_replace('{EXTENDED_CAT_TEXT}', $tp->toHTML($cat['user_extended_struct_name'], '', 'emotes_off defs'), $SIGNUP_EXTENDED_CAT); + $done_heading = TRUE; + } + $replace = array( + $tp->toHTML($ext['user_extended_struct_text'], '', 'emotes_off defs'), + ($ext['user_extended_struct_required'] == 1 ? $EXTENDED_USER_FIELD_REQUIRED : ''), + $usere->user_extended_edit($ext, $_POST['ue']['user_'.$ext['user_extended_struct_name']]) + ); + $text .= str_replace($search, $replace, $SIGNUP_EXTENDED_USER_FIELDS); + } + } } - return $text; +return $text; SC_END SC_BEGIN SIGNUP_SIGNATURE diff --git a/e107_handlers/user_extended_class.php b/e107_handlers/user_extended_class.php index de2020e99..d03ce700e 100755 --- a/e107_handlers/user_extended_class.php +++ b/e107_handlers/user_extended_class.php @@ -11,9 +11,9 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_handlers/user_extended_class.php,v $ -| $Revision: 1.6 $ -| $Date: 2007-06-13 22:03:01 $ -| $Author: e107coders $ +| $Revision: 1.7 $ +| $Date: 2007-07-30 20:25:30 $ +| $Author: e107steved $ +----------------------------------------------------------------------------+ */ @@ -129,7 +129,7 @@ class e107_user_extended function user_extended_get_fieldList($cat = "") { global $sql; - $more = ($cat) ? " AND user_extended_struct_parent = ".intval($cat)." " : ""; + $more = ($cat != '') ? " AND user_extended_struct_parent = ".intval($cat)." " : ""; if($sql->db_Select("user_extended_struct", "*", "user_extended_struct_type > 0 {$more} ORDER BY user_extended_struct_order ASC")) { while($row = $sql->db_Fetch()) diff --git a/e107_themes/templates/signup_template.php b/e107_themes/templates/signup_template.php index b02a92c10..e31aaf7b5 100755 --- a/e107_themes/templates/signup_template.php +++ b/e107_themes/templates/signup_template.php @@ -11,9 +11,9 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_themes/templates/signup_template.php,v $ -| $Revision: 1.3 $ -| $Date: 2007-01-17 13:43:40 $ -| $Author: mrpete $ +| $Revision: 1.4 $ +| $Date: 2007-07-30 20:25:36 $ +| $Author: e107steved $ +----------------------------------------------------------------------------+ */ @@ -316,6 +316,19 @@ $SIGNUP_BODY = " "; } + +if(!defined($SIGNUP_EXTENDED_CAT)) +{ + $SIGNUP_EXTENDED_CAT = " + + + {EXTENDED_CAT_TEXT} + + +"; +} + + if(!defined($SIGNUP_END)) { $SIGNUP_END = "