1
0
mirror of https://github.com/e107inc/e107.git synced 2025-07-31 20:00:37 +02:00

Fixed bootstrap layout for subscription/mailing list options on signup page and added additional validation checks.

This commit is contained in:
Cameron
2016-06-05 13:33:18 -07:00
parent a7e832f6e8
commit 8682707cf1
4 changed files with 48 additions and 32 deletions

View File

@@ -348,40 +348,37 @@ class signup_shortcodes extends e_shortcode
function sc_signup_userclass_subscribe()
{
global $pref, $e_userclass, $USERCLASS_SUBSCRIBE_START, $USERCLASS_SUBSCRIBE_END, $signupData;
$ret = "";
$pref = e107::pref('core');
// global $pref, $USERCLASS_SUBSCRIBE_START, $USERCLASS_SUBSCRIBE_END, $signupData;
if($pref['signup_option_class'])
if(empty($pref['signup_option_class']))
{
if (!is_object($e_userclass))
{
require_once(e_HANDLER.'userclass_class.php');
$e_userclass = new user_class;
}
$ucList = $e_userclass->get_editable_classes(); // List of classes which this user can edit
$ret = '';
if(!$ucList) return;
/*
function show_signup_class($treename, $classnum, $current_value, $nest_level)
{
global $USERCLASS_SUBSCRIBE_ROW, $e_userclass, $tp;
$tmp = explode(',',$current_value);
$search = array('{USERCLASS_ID}', '{USERCLASS_NAME}', '{USERCLASS_DESCRIPTION}', '{USERCLASS_INDENT}', '{USERCLASS_CHECKED}');
$replace = array($classnum, $tp->toHTML($e_userclass->uc_get_classname($classnum), FALSE, 'defs'),
$tp->toHTML($e_userclass->uc_get_classdescription($classnum), FALSE, 'defs'), " style='text-indent:".(1.2*$nest_level)."em'",
( in_array($classnum, $tmp) ? " checked='checked'" : ''));
return str_replace($search, $replace, $USERCLASS_SUBSCRIBE_ROW);
}*/
$ret = $USERCLASS_SUBSCRIBE_START;
$ret .= $e_userclass->vetted_tree('class',array($this,'show_signup_class'),varset($signupData['user_class'],''),'editable, no-excludes');
$ret .= $USERCLASS_SUBSCRIBE_END;
return $ret;
}
return false;
}
function show_signup_class($treename, $classnum, $current_value, $nest_level)
$uc = e107::getUserClass();
$ucList = $uc->get_editable_classes(e_UC_PUBLIC, true); // This is signup so display only 'editable by public' classes.
if(empty($ucList)) return false;
$text = '';
foreach($ucList as $classNum)
{
$text .= $this->show_signup_class($classNum, 1); // checked by default.
}
return $text;
// return $uc->vetted_tree('class', array($this,'show_signup_class'), varset($signupData['user_class'],''),'editable, no-excludes');
}
private function show_signup_class( $classnum, $current_value='', $nest_level=0)
{
$tp = e107::getParser();
$uc = e107::getUserClass();
@@ -390,7 +387,7 @@ class signup_shortcodes extends e_shortcode
if(deftrue('BOOTSTRAP'))
{
$text = "<div class='checkbox'>";
$text = "<div class='checkboxes'>";
$label = $tp->toHTML($uc->getName($classnum),false, 'defs');
$diz = $tp->toHTML($uc->getDescription($classnum),false,'defs');
$text .= $frm->checkbox('class[]', $classnum, $current_value, array('label'=>$label,'title'=> $diz, 'class'=>'e-tip'));

View File

@@ -181,6 +181,12 @@ $sc_style['SIGNUP_PASSWORD2']['pre'] = "<tr>
$sc_style['SIGNUP_PASSWORD2']['post'] = "</td>
</tr>";
$sc_style['SIGNUP_USERCLASS_SUBSCRIBE']['pre'] = "<tr>
<td class='forumheader3' style='width:30%;white-space:nowrap'>".LAN_SIGNUP_113."</td>
<td class='forumheader3' style='width:70%'>";
$sc_style['SIGNUP_USERCLASS_SUBSCRIBE']['post'] = "</td>
</tr>";
if(!defined($COPPA_TEMPLATE))
{

View File

@@ -152,5 +152,5 @@ define("LAN_SIGNUP_110", "Your full name");
define("LAN_SIGNUP_111", "Enter a URL to your image or choose an existing avatar.");
define("LAN_SIGNUP_112", "You are currently logged in as Main Admin.");
define("LAN_SIGNUP_113", "Subscription(s)");
?>

View File

@@ -636,6 +636,14 @@ if (isset($_POST['register']) && intval($pref['user_reg']) === 1)
$_POST['password2'] = $_POST['password1'];
}
// posted class subscription - check it's only from the public classes.
if(!empty($_POST['class']))
{
$publicClasses = e107::getUserClass()->get_editable_classes(e_UC_PUBLIC, true);
$_POST['class'] = array_intersect($publicClasses, $_POST['class']);
unset($publicClasses);
}
// Now validate everything
$allData = validatorClass::validateFields($_POST,$userMethods->userVettingInfo, TRUE); // Do basic validation
validatorClass::checkMandatory('user_name,user_loginname', $allData); // Check for missing fields (email done in userValidation() )
@@ -815,7 +823,12 @@ if (isset($_POST['register']) && intval($pref['user_reg']) === 1)
// The user_class, user_perms, user_prefs, user_realm fields don't have default value,
// so we put apropriate ones, otherwise - broken DB Insert
if(empty($allData['data']['user_class']))
{
$allData['data']['user_class'] = '';
}
$allData['data']['user_perms'] = '';
$allData['data']['user_prefs'] = '';
$allData['data']['user_realm'] = '';