Index: branches/2.8.x/CHANGELOG
===================================================================
--- branches/2.8.x/CHANGELOG	(revision 1772)
+++ branches/2.8.x/CHANGELOG	(revision 1773)
@@ -13,6 +13,10 @@
 
 
 
+28 Sep-2012 Build 1773 Dietmar Woellbrink (Luisehahne)
+! account split html and code
++ add signup activation registering
++ add missing icons in themes
 28 Sep-2012 Build 1772 Dietmar Woellbrink (Luisehahne)
 # fixed show e-mail in submission overview
 ! set  title to tooltip if you add a pageX
Index: branches/2.8.x/wb/admin/skel/themes/htt/users_form.htt
===================================================================
--- branches/2.8.x/wb/admin/skel/themes/htt/users_form.htt	(revision 1772)
+++ branches/2.8.x/wb/admin/skel/themes/htt/users_form.htt	(revision 1773)
@@ -6,6 +6,7 @@
 	document.getElementById(radio_off).checked = true;
 }
 </script>
+<div class="account">
 
 <h2 class="left" style="{DISPLAY_EXTRA}">{HEADING_MODIFY_USER}</h2>
 
@@ -13,10 +14,10 @@
 <input type="hidden" name="user_id" value="{USER_ID}" />
 <input type="hidden" name="username_fieldname" value="{USERNAME_FIELDNAME}" />
 {FTAN}
-<table summary="" cellpadding="5" cellspacing="0" border="0" width="100%">
+<table>
 <!-- BEGIN show_modify_loginname_block -->
 <tr>
-	<td width="150">{TEXT_USERNAME}:</td>
+	<td>{TEXT_USERNAME}:</td>
 	<td class="value_input">
 		<input type="hidden" name="{USERNAME_FIELDNAME}" value="{USERNAME}" />
 		<input class="button" type="button" value="{USERNAME}" disabled="disabled" readonly="readonly" />
@@ -25,7 +26,7 @@
 <!-- END show_modify_loginname_block -->
 <!-- BEGIN show_add_loginname_block -->
 <tr>
-	<td width="150">{TEXT_USERNAME}:</td>
+	<td>{TEXT_USERNAME}:</td>
 	<td class="value_input">
 		<input type="text" name="{USERNAME_FIELDNAME}" maxlength="30" value="{USERNAME}" />
 	</td>
@@ -92,15 +93,14 @@
 	</td>
 </tr>
 <tr>
-	<td>&nbsp;</td>
-	<td>
+	<td colspan="2" class="center">
 		<input type="submit" name="submit" value="{SUBMIT_TITLE}" />
 		<input type="reset" name="reset" value="{TEXT_RESET}" />
-		<input type="button" style="width: 100px; margin-top: 5px;" onclick="javascript: window.location = 'index.php';" value="{TEXT_CANCEL}" />
+		<input type="button" style="width: 100px; margin-top: 5px;" onclick="javascript:window.location='index.php';" value="{TEXT_CANCEL}" />
 	</td>
 </tr>
 </table>
 
 </form>
-
+</div>
 <!-- END main_block -->
\ No newline at end of file
Index: branches/2.8.x/wb/admin/interface/version.php
===================================================================
--- branches/2.8.x/wb/admin/interface/version.php	(revision 1772)
+++ branches/2.8.x/wb/admin/interface/version.php	(revision 1773)
@@ -51,5 +51,5 @@
 
 // check if defined to avoid errors during installation (redirect to admin panel fails if PHP error/warnings are enabled)
 if(!defined('VERSION')) define('VERSION', '2.8.3');
-if(!defined('REVISION')) define('REVISION', '1772');
+if(!defined('REVISION')) define('REVISION', '1773');
 if(!defined('SP')) define('SP', '');
Index: branches/2.8.x/wb/account/preferences.htt
===================================================================
--- branches/2.8.x/wb/account/preferences.htt	(revision 1772)
+++ branches/2.8.x/wb/account/preferences.htt	(nonexistent)
@@ -1,137 +0,0 @@
-<!-- BEGIN main_block -->
-<!-- BEGIN success_block -->
-<p class="mod_preferences_success">
-	{SUCCESS_VALUE}
-</p>
-<!-- END success_block -->
-<!-- BEGIN error_block -->
-<p class="mod_preferences_error">
-	{ERROR_VALUE}
-</p>
-<!-- END error_block -->
-<div style="margin: 1em auto;">
-	<button type="button" value="cancel" onclick="javascript:window.location = '{HTTP_REFERER}';">{TEXT_CANCEL}</button>
-</div>
-<hr />
-<form name="details" action="" method="post">
-	<h3>{HEADING_MY_SETTINGS}</h3>
-	<table summary="" cellpadding="5" cellspacing="0" border="0" width="100%">
-		<tr>
-			<td width="160">{TEXT_DISPLAY_NAME}:</td>
-			<td>
-				<input class="button" type="button" name="display_name" value="{DISPLAY_NAME}" disabled="disabled" readonly="readonly"
-				 style="border :1px solid #666666; color :#000000; text-align :left; font-weight :bold; background-color :#dddddd; margin : 2px auto; padding :2px 0px 2px 6px; width :71%;"/>
-			</td>
-		</tr>
-		<tr>
-			<td>{TEXT_LANGUAGE}:</td>
-			<td>
-				<select name="language" id="language">
-					<!-- BEGIN language_list_block -->
-						<option value="{CODE}"{SELECTED} style="background: url({FLAG}.png) no-repeat center left; padding-left: 20px;">{NAME} ({CODE})</option>
-					<!-- END language_list_block -->
-				</select>
-			</td>
-		</tr>
-		<tr>
-			<td>{TEXT_TIMEZONE}:</td>
-			<td>
-				<select name="timezone" style="width: 98%;">
-					<option value="-20">{MOD_PREFERENCE_PLEASE_SELECT}</option>
-<!-- BEGIN timezone_list_block -->
-					<option value="{VALUE}" {SELECTED}>{NAME}</option>
-<!-- END timezone_list_block -->
-				</select>
-			</td>
-		</tr>
-		<tr>
-			<td>{TEXT_DATE_FORMAT}:</td>
-			<td>
-				<select name="date_format" style="width: 98%;">
-					<option value="">{MOD_PREFERENCE_PLEASE_SELECT}</option>
-<!-- BEGIN date_format_list_block -->
-					<option value="{VALUE}" {SELECTED}>{NAME}</option>
-<!-- END date_format_list_block -->
-				</select>
-			</td>
-		</tr>
-		<tr>
-			<td>{TEXT_TIME_FORMAT}:</td>
-			<td>
-				<select name="time_format" style="width: 98%;">
-					<option value="">{MOD_PREFERENCE_PLEASE_SELECT}</option>
-<!-- BEGIN time_format_list_block -->
-					<option value="{VALUE}" {SELECTED}>{NAME}</option>
-<!-- END time_format_list_block -->
-				</select>
-			</td>
-		</tr>
-		<tr>
-			<td>&nbsp;</td>
-			<td>
-				<button type="reset" name="reset" value="reset">{TEXT_RESET}</button>
-				<button type="submit" name="action" value="details">{MOD_PREFERENCE_SAVE_SETTINGS}</button>
-			</td>
-		</tr>
-	</table>
-</form>
-<hr />
-<form name="email" action="" method="post">
-	<h3>{HEADING_MY_EMAIL}</h3>
-	<table summary="" cellpadding="5" cellspacing="0" border="0" width="100%">
-		<tr>
-			<td>{TEXT_EMAIL}:</td>
-			<td>
-				<input type="text" name="email" value="{EMAIL}" style="width: 98%;" />
-			</td>
-		</tr>
-		<tr>
-			<td width="160">{TEXT_CURRENT_PASSWORD}:</td>
-			<td>
-				<input type="password" name="current_password" style="width: 98%;" />
-			</td>
-		</tr>
-		<tr>
-			<td>&nbsp;</td>
-			<td>
-				<button type="reset" name="reset" value="reset">{TEXT_RESET}</button>
-				<button type="submit" name="action" value="email">{MOD_PREFERENCE_SAVE_EMAIL}</button>
-			</td>
-		</tr>
-	</table>
-</form>
-<hr />
-<form name="password" action="" method="post">
-	<h3>{HEADING_MY_PASSWORD}</h3>
-	<table summary="" cellpadding="5" cellspacing="0" border="0" width="100%">
-		<tr>
-			<td width="160">{TEXT_CURRENT_PASSWORD}:</td>
-			<td>
-				<input type="password" name="current_password" style="width: 98%;" />
-			</td>
-		</tr>
-		<tr>
-			<td width="160">{TEXT_NEW_PASSWORD}:</td>
-			<td>
-				<input type="password" name="new_password" style="width: 98%;" />
-			</td>
-		</tr>
-		<tr>
-			<td width="160">{TEXT_RETYPE_NEW_PASSWORD}:</td>
-			<td>
-				<input type="password" name="new_password2" style="width: 98%;" />
-			</td>
-		</tr>
-		<tr>
-			<td>&nbsp;</td>
-			<td>
-				<button type="reset" name="reset" value="reset">{TEXT_RESET}</button>
-				<button type="submit" name="action" value="password">{MOD_PREFERENCE_SAVE_PASSWORD}</button>
-			</td>
-		</tr>
-	</table>
-</form>
-<div style="margin: 1em auto;">
-	<button type="button" value="cancel" onclick="javascript:window.location = '{HTTP_REFERER}';">{TEXT_CANCEL}</button>
-</div>
-<!-- END main_block -->
\ No newline at end of file

Property changes on: branches/2.8.x/wb/account/preferences.htt
___________________________________________________________________
Deleted: svn:eol-style
## -1 +0,0 ##
-native
\ No newline at end of property
Deleted: svn:keywords
## -1 +0,0 ##
-Date Revision
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/html
\ No newline at end of property
Index: branches/2.8.x/wb/account/signup2.php
===================================================================
--- branches/2.8.x/wb/account/signup2.php	(revision 1772)
+++ branches/2.8.x/wb/account/signup2.php	(nonexistent)
@@ -1,134 +0,0 @@
-<?php
-/**
- *
- * @category        frontend
- * @package         account
- * @author          WebsiteBaker Project
- * @copyright       2004-2009, Ryan Djurovich
- * @copyright       2009-2011, Website Baker Org. e.V.
- * @link			http://www.websitebaker2.org/
- * @license         http://www.gnu.org/licenses/gpl.html
- * @platform        WebsiteBaker 2.8.x
- * @requirements    PHP 5.2.2 and higher
- * @version         $Id$
- * @filesource		$HeadURL$
- * @lastmodified    $Date$
- *
- */
-
-// Must include code to stop this file being access directly
-if(defined('WB_PATH') == false) { die("Cannot access this file directly"); }
-
-// require_once(WB_PATH.'/framework/class.wb.php');
-$wb = new wb('Start', 'start', false, false);
-include_once (WB_PATH.'/framework/functions.php');
-// Get details entered
-$groups_id = FRONTEND_SIGNUP;
-$active = 1;
-$username = strtolower(strip_tags($wb->get_post_escaped('username')));
-$display_name = strip_tags($wb->get_post_escaped('display_name'));
-$email = $wb->get_post('email');
-
-// Create a javascript back link
-$js_back = WB_URL.'/account/signup.php';
-/*
-if (!$wb->checkFTAN())
-{
-	$wb->print_error($MESSAGE['GENERIC_SECURITY_ACCESS'], $js_back, false);
-	exit();
-}
-*/
-// Check values
-if($groups_id == "") {
-	$wb->print_error($MESSAGE['USERS_NO_GROUP'], $js_back, false);
-}
-if(!preg_match('/^[a-z]{1}[a-z0-9_-]{2,}$/i', $username)) {
-	$wb->print_error( $MESSAGE['USERS_NAME_INVALID_CHARS'].' / '.
-	                  $MESSAGE['USERS_USERNAME_TOO_SHORT'], $js_back);
-}
-if($email != "") {
-	if($wb->validate_email($email) == false) {
-		$wb->print_error($MESSAGE['USERS_INVALID_EMAIL'], $js_back, false);
-	}
-} else {
-	$wb->print_error($MESSAGE['SIGNUP_NO_EMAIL'], $js_back, false);
-}
-
-$email = $wb->add_slashes($email);
-$search = array('{SERVER_EMAIL}');
-$replace = array( SERVER_EMAIL);
-// Captcha
-if(ENABLED_CAPTCHA) {
-	$aServerEmail = (defined('SERVER_EMAIL') && SERVER_EMAIL != '' ? SERVER_EMAIL : $_SERVER['SERVER_NAME']);
-	$replace = array('SERVER_EMAIL' => $aServerEmail );
-	$MESSAGE['MOD_FORM_INCORRECT_CAPTCHA'] = replace_vars($MESSAGE['MOD_FORM_INCORRECT_CAPTCHA'], $replace);
-	if(isset($_POST['captcha']) AND $_POST['captcha'] != ''){
-		// Check for a mismatch
-		if(!isset($_POST['captcha']) OR !isset($_SESSION['captcha']) OR $_POST['captcha'] != $_SESSION['captcha']) {
-			$wb->print_error($MESSAGE['MOD_FORM_INCORRECT_CAPTCHA'], $js_back, false);
-		}
-	} else {
-		$wb->print_error($MESSAGE['MOD_FORM_INCORRECT_CAPTCHA'], $js_back, false);
-	}
-}
-if(isset($_SESSION['captcha'])) { unset($_SESSION['captcha']); }
-
-// Generate a random password then update the database with it
-$new_pass = '';
-$salt = "abchefghjkmnpqrstuvwxyz0123456789";
-srand((double)microtime()*1000000);
-$i = 0;
-while ($i <= 7) {
-	$num = rand() % 33;
-	$tmp = substr($salt, $num, 1);
-	$new_pass = $new_pass . $tmp;
-	$i++;
-}
-$md5_password = md5($new_pass);
-
-// Check if username already exists
-$results = $database->query("SELECT user_id FROM ".TABLE_PREFIX."users WHERE username = '$username'");
-if($results->numRows() > 0) {
-	$wb->print_error($MESSAGE['USERS_USERNAME_TAKEN'], $js_back, false);
-}
-
-// Check if the email already exists
-$results = $database->query("SELECT user_id FROM ".TABLE_PREFIX."users WHERE email = '".$wb->add_slashes($email)."'");
-if($results->numRows() > 0) {
-	if(isset($MESSAGE['USERS_EMAIL_TAKEN'])) {
-		$wb->print_error($MESSAGE['USERS_EMAIL_TAKEN'], $js_back, false);
-	} else {
-		$wb->print_error($MESSAGE['USERS_INVALID_EMAIL'], $js_back, false);
-	}
-}
-
-// MD5 supplied password
-$md5_password = md5($new_pass);
-
-// Inser the user into the database
-$query = "INSERT INTO ".TABLE_PREFIX."users (group_id,groups_id,active,username,password,display_name,email) VALUES ('$groups_id', '$groups_id', '$active', '$username','$md5_password','$display_name','$email')";
-$database->query($query);
-
-if($database->is_error()) {
-	// Error updating database
-	$message = $database->get_error();
-} else {
-	// Setup email to send
-	$mail_to = $email;
-	$mail_subject = $MESSAGE['SIGNUP2_SUBJECT_LOGIN_INFO'];
-
-	// Replace placeholders from language variable with values
-	$search = array('{LOGIN_DISPLAY_NAME}', '{LOGIN_WEBSITE_TITLE}', '{LOGIN_NAME}', '{LOGIN_PASSWORD}');
-	$replace = array($display_name, WEBSITE_TITLE, $username, $new_pass); 
-	$mail_message = str_replace($search, $replace, $MESSAGE['SIGNUP2_BODY_LOGIN_INFO']);
-
-	// Try sending the email
-	if($wb->mail(SERVER_EMAIL,$mail_to,$mail_subject,$mail_message)) {
-		$display_form = false;
-		$wb->print_success($MESSAGE['FORGOT_PASS_PASSWORD_RESET'], WB_URL.'/account/login.php' );
-	} else {
-		$database->query("DELETE FROM ".TABLE_PREFIX."users WHERE username = '$username'");
-		$wb->print_error($MESSAGE['FORGOT_PASS_CANNOT_EMAIL'], $js_back, false);
-	}
-}
-

Property changes on: branches/2.8.x/wb/account/signup2.php
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Deleted: svn:keywords
## -1,4 +0,0 ##
-Id
-Revision
-HeadURL
-Date
\ No newline at end of property
Index: branches/2.8.x/wb/account/signup_mails.php
===================================================================
--- branches/2.8.x/wb/account/signup_mails.php	(nonexistent)
+++ branches/2.8.x/wb/account/signup_mails.php	(revision 1773)
@@ -0,0 +1,82 @@
+<?php
+/**
+ *
+ * @category        frontend
+ * @package         account
+ * @author          WebsiteBaker Project
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
+ * @link			http://www.websitebaker2.org/
+ * @license         http://www.gnu.org/licenses/gpl.html
+ * @platform        WebsiteBaker 2.8.x
+ * @requirements    PHP 5.2.2 and higher
+ * @version         $Id$
+ * @filesource		$HeadURL$
+ * @lastmodified    $Date$
+ *
+ */
+
+/* -------------------------------------------------------- */
+// Must include code to stop this file being accessed directly
+if(defined('WB_PATH') == false)
+{
+	die('<h2 style="color:red;margin:3em auto;text-align:center;">Cannot access this file directly</h2>');
+}
+/* -------------------------------------------------------- */
+
+		//WB_MAILER settings
+			$sServerEmail = (defined('SERVER_EMAIL') && SERVER_EMAIL != '' ? SERVER_EMAIL : emailAdmin());
+			$sWebMailer   = (defined('WBMAILER_DEFAULT_SENDERNAME') && WBMAILER_DEFAULT_SENDERNAME != '' ? WBMAILER_DEFAULT_SENDERNAME : 'WebsiteBaker Mailer');
+
+			$aDebugUserMail  = array();
+			$aDebugAdminMail = array();
+
+			$bSendRegistrationMailtoUser = false;
+			// Send mail to Admin easy old style
+			if(!CONFIRMED_REGISTRATION)
+			{
+			// first send to admin
+				$bSendRegistrationMailtoAdmin = false;
+				$sql  = 'SELECT `user_id` FROM `'.TABLE_PREFIX.'users` ';
+				$sql .= 'ORDER BY `user_id` DESC ';
+				$user_id = $database->get_one($sql)+1;
+
+				$mail_replyto = $email_to;
+				$mail_replyName = $sDisplayName;
+				$mail_message = $MESSAGE['SIGNUP2_ADMIN_INFO'];
+				$email_subject = $MESSAGE['SIGNUP2_NEW_USER'];
+				$search = array('{LOGIN_EMAIL}','{LOGIN_ID}', '{SIGNUP_DATE}', '{LOGIN_NAME}', '{LOGIN_IP}');
+				$replace = array($email_to, $email_fromname.' ('.$user_id.')', date(DATE_FORMAT.' '.TIME_FORMAT,$get_ts ), $sLoginName, $get_ip);
+				$mail_message = str_replace($search, $replace, $mail_message);
+				$email_body = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $mail_message );
+				$success_email_to = emailAdmin();
+
+				$bSendRegistrationMailtoAdmin = $wb->mail($sServerEmail,$success_email_to,$email_subject,$email_body,$mail_replyName,$mail_replyto);
+
+// prepare confirmation mail to user, easy old style
+				if(($email_to != '') && $bSaveRegistration) {
+					$email_subject = $MESSAGE['SIGNUP2_SUBJECT_LOGIN_INFO'];
+					$mail_message = $MESSAGE['SIGNUP2_BODY_LOGIN_INFO'].$MESSAGE['SUCCESS_EMAIL_TEXT_GENERATED'];
+					$search = array('{LOGIN_DISPLAY_NAME}', '{LOGIN_WEBSITE_TITLE}', '{LOGIN_NAME}', '{LOGIN_PASSWORD}');
+					$replace = array($sDisplayName, WEBSITE_TITLE, $sLoginName, $sNewPassword);
+					$mail_message = str_replace($search, $replace, $mail_message);
+				}
+			} else {
+// prepare confirmation mail to user, Register with confirmation
+				if(($email_to != '') && $bSaveRegistration) {
+//					$daylight_saving = date('I');
+					$sConfirmedTimeOut = gmdate('Y/m/d H:i',$sTimeOut).' GMT';
+					$email_subject = $MESSAGE['SIGNUP_ACTIVATION'];
+					$search = array('{LOGIN_DISPLAY_NAME}', '{LOGIN_WEBSITE_TITLE}', '{LOGIN_NAME}', '{LINK}', '{CONFIRMED_REGISTRATION_ENDTIME}');
+					$replace = array($sDisplayName, WEBSITE_TITLE, $sLoginName, $sConfirmedLink,$sConfirmedTimeOut);
+					$mail_message = $MESSAGE['SEND_CONFIRMED_REGISTRATION'].$MESSAGE['SUCCESS_EMAIL_TEXT_GENERATED'];
+					$mail_message = str_replace($search, $replace, $mail_message);
+				}
+			}
+// now send user email, first prepare values for both of type
+			$email_body = '';
+			$regex = "/[^a-z0-9ÃŸÃ¶Ã¤Ã¼Ã–Ã„Ãœ !?:;,.\/_\-=+@#$&\*\(\)]/im";
+			$recipient = preg_replace( $regex, "?", $sDisplayName );
+			$email_fromname = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "?", $recipient );
+			$email_body = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $mail_message );
+
+			$bSendRegistrationMailtoUser = $wb->mail($sServerEmail,$email_to,$email_subject,$email_body,$sWebMailer);

Property changes on: branches/2.8.x/wb/account/signup_mails.php
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id Revision HeadURL
\ No newline at end of property
Index: branches/2.8.x/wb/account/confirm_form_mask.php
===================================================================
--- branches/2.8.x/wb/account/confirm_form_mask.php	(nonexistent)
+++ branches/2.8.x/wb/account/confirm_form_mask.php	(revision 1773)
@@ -0,0 +1,84 @@
+<?php
+/**
+ *
+ * @category        frontend
+ * @package         account
+ * @author          WebsiteBaker Project
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
+ * @link			http://www.websitebaker2.org/
+ * @license         http://www.gnu.org/licenses/gpl.html
+ * @platform        WebsiteBaker 2.8.x
+ * @requirements    PHP 5.2.2 and higher
+ * @version         $Id$
+ * @filesource		$HeadURL$
+ * @lastmodified    $Date$
+ *
+ */
+/* -------------------------------------------------------- */
+// Must include code to stop this file being accessed directly
+if(defined('WB_PATH') == false)
+{
+	die('<h2 style="color:red;margin:3em auto;text-align:center;">Cannot access this file directly</h2>');
+}
+/* -------------------------------------------------------- */
+
+
+// set template file and assign module and template block
+	$oTpl = new Template(dirname(__FILE__).'/htt','keep');
+	$oTpl->set_file('page', 'confirm.htt');
+	$oTpl->debug = false; // false, true
+	$oTpl->set_block('page', 'main_block', 'main');
+	$oTpl->set_var(array(
+		'FTAN' => $wb->getFTAN(),
+		'ACTION_URL' => WB_URL.'/account/confirm.php',
+		'WB_URL' => WB_URL,
+		'THEME_URL' => THEME_URL,
+		'HTTP_REFERER' => isset($_SESSION['HTTP_REFERER']) ? $_SESSION['HTTP_REFERER'] : WB_URL,
+		'CONFIRM_CODE' => $sConfirmationId,
+		'MESSAGE_VALUE' => '',
+		'ERROR_VALUE' => '',
+		'HEADING_SIGNUP' => $mLang->HEADING_SIGNUP2_CONFIMED_REGISTRATION,
+		'TEXT_LANGUAGE' => $TEXT['LANGUAGE'],
+		'HELP_CONFIRM_PASSWORD' => $mLang->HELP_CONFIRM_PASSWORD,
+		'HEADING_MESSAGE_WELCOME' => $mLang->HEADING_MESSAGE_WELCOME,
+		'TEXT_SIGNUP' => $mLang->TEXT_ACTIVATION,
+		'TEXT_RESET' => $TEXT['RESET'],
+		'TEXT_CANCEL' => $TEXT['CANCEL'],
+		)
+	);
+//print '<pre style="text-align: left;"><strong>function '.__FUNCTION__.'( '.$sSubmitAction.' );</strong>  basename: '.basename(__FILE__).'  line: '.__LINE__.' -> <br />';
+//print_r( $sConfirmationId ); print '</pre>';
+
+	$sSelected = ' selected="selected"';
+	$checked   = ' checked="checked"';
+// show messages, default block off
+	$oTpl->set_block('main_block', 'message_block', 'message');
+	$oTpl->parse('message', '');
+	if( ($msg = msgQueue::getError()) != '')
+	{
+		$output = $wb->format_message($msg, 'error');
+		$oTpl->set_var('MESSAGE_VALUE',$output);
+		$oTpl->parse('message', 'message_block', true);
+	}
+	$oTpl->set_var('MESSAGE','');
+
+	$oTpl->set_block('main_block', 'asp_block', 'asp');
+	if(ENABLED_ASP) {
+		$oTpl->set_var('DISPLAY_ASP','nixhier');
+		$oTpl->parse('asp', 'asp_block', true);
+	} else {
+		$oTpl->parse('asp', '', true);
+	}
+
+	$oTpl->set_var(array(
+			'DISPLAY_USER' => '',
+			'TEXT_USERNAME' => $mLang->TEXT_USERNAME,
+			'TEXT_PASSWORD' => $mLang->TEXT_PASSWORD,
+			)
+		);
+
+	// Parse template object
+	$oTpl->parse('main', 'main_block', false);
+	$output = $oTpl->finish($oTpl->parse('output', 'page'));
+	unset($oTpl);
+	print $output;

Property changes on: branches/2.8.x/wb/account/confirm_form_mask.php
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id Revision HeadURL
\ No newline at end of property
Index: branches/2.8.x/wb/account/confirm.php
===================================================================
--- branches/2.8.x/wb/account/confirm.php	(nonexistent)
+++ branches/2.8.x/wb/account/confirm.php	(revision 1773)
@@ -0,0 +1,66 @@
+<?php
+/**
+ *
+ * @category        frontend
+ * @package         account
+ * @author          WebsiteBaker Project
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
+ * @link			http://www.websitebaker2.org/
+ * @license         http://www.gnu.org/licenses/gpl.html
+ * @platform        WebsiteBaker 2.8.x
+ * @requirements    PHP 5.2.2 and higher
+ * @version         $Id$
+ * @filesource		$HeadURL$
+ * @lastmodified    $Date$
+ *
+ */
+
+require_once('../config.php');
+
+require_once(WB_PATH.'/framework/class.admin.php');
+// Create new frontend object
+$wb = new admin();
+
+//require_once(dirname(__FILE__).'/AccountSignup.php');
+
+// load module language file
+$sAutoLanguage = isset($_SESSION['language']) ? $_SESSION['language'] : AccountSignup::GetBowserLanguage(DEFAULT_LANGUAGE);
+
+$mLang = ModLanguage::getInstance();
+$mLang->setLanguage(dirname(__FILE__).'/languages/', $sAutoLanguage, DEFAULT_LANGUAGE);
+
+// form faked? Check the honeypot-fields.
+if(ENABLED_ASP && isset($_POST['username']) && (
+	(!isset($_POST['submitted_when']) OR !isset($_SESSION['submitted_when']) ) OR
+		($_POST['submitted_when'] != $_SESSION['submitted_when']) OR
+			(!isset($_POST['email-address']) OR $_POST['email-address']) OR
+				(!isset($_POST['name']) OR $_POST['name']) OR
+					(!isset($_POST['full_name']) OR $_POST['full_name'])
+	))
+{
+	$wb->send_header(WB_URL.'/index.php');
+}
+
+$page_id = isset($_SESSION['PAGE_ID']) ? intval($_SESSION['PAGE_ID']) : 0;
+// needed for backlink/cancel
+$_SESSION['HTTP_REFERER'] = isset($_SESSION['HTTP_REFERER']) ? ($_SESSION['HTTP_REFERER']) : WB_URL.'/';
+// action modus
+$_POST['action'] = !isset($_POST['action']) ? 'show' : $_POST['action'];
+
+$page_description = '';
+$page_keywords = '';
+define('PAGE_ID', $page_id);
+define('ROOT_PARENT', 0);
+define('PARENT', 0);
+define('LEVEL', 0);
+define('PAGE_TITLE', $TEXT['SIGNUP']);
+define('MENU_TITLE', $TEXT['SIGNUP']);
+define('MODULE', '');
+define('VISIBILITY', 'public');
+
+define('PAGE_CONTENT', WB_PATH.'/account/confirm_form.php');
+
+
+// Include the index (wrapper) file
+require(WB_PATH.'/index.php');
+

Property changes on: branches/2.8.x/wb/account/confirm.php
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id Revision HeadURL
\ No newline at end of property
Index: branches/2.8.x/wb/account/password.php
===================================================================
--- branches/2.8.x/wb/account/password.php	(revision 1772)
+++ branches/2.8.x/wb/account/password.php	(revision 1773)
@@ -15,8 +15,14 @@
  *
  */
 
-// Must include code to stop this file being access directly
-if(defined('WB_PATH') == false) { die("Cannot access this file directly"); }
+/* -------------------------------------------------------- */
+// Must include code to stop this file being accessed directly
+if(defined('WB_PATH') == false)
+{
+	// Stop this file being access directly
+		die('<h2 style="color:red;margin:3em auto;text-align:center;">Cannot access this file directly</h2>');
+}
+/* -------------------------------------------------------- */
 
 // Get entered values
 	$iMinPassLength = 6;
Index: branches/2.8.x/wb/account/signup.php
===================================================================
--- branches/2.8.x/wb/account/signup.php	(revision 1772)
+++ branches/2.8.x/wb/account/signup.php	(revision 1773)
@@ -3,9 +3,8 @@
  *
  * @category        frontend
  * @package         account
- * @author          WebsiteBaker Project
- * @copyright       2004-2009, Ryan Djurovich
- * @copyright       2009-2011, Website Baker Org. e.V.
+ * @author          Ryan Djurovich, WebsiteBaker Project
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
  * @link			http://www.websitebaker2.org/
  * @license         http://www.gnu.org/licenses/gpl.html
  * @platform        WebsiteBaker 2.8.x
@@ -19,40 +18,54 @@
 require_once('../config.php');
 ini_set('display_errors','0');
 
-if(!( intval(FRONTEND_SIGNUP) && (  0 == (isset($_SESSION['USER_ID']) ? intval($_SESSION['USER_ID']) : 0) )))
+require_once(WB_PATH.'/framework/class.admin.php');
+
+// Create new frontend object
+$wb = new admin();
+
+//require_once(dirname(__FILE__).'/MySignUp.php');
+//print '<pre style="text-align: left;"><strong>function '.__FUNCTION__.'( '.$page_id.' );</strong>  basename: '.basename(__FILE__).'  line: '.__LINE__.' -> <br />';
+//print_r( dirname(__FILE__) ); print '</pre>';
+
+//
+if( ( (intval(FRONTEND_SIGNUP)==0) &&
+    (  0 == (isset($_SESSION['USER_ID']) ? intval($_SESSION['USER_ID']) : 0) )))
 {
-	if(INTRO_PAGE) {
-		header('Location: '.WB_URL.PAGES_DIRECTORY.'/index.php');
-		exit(0);
-	} else {
-		header('Location: '.WB_URL.'/index.php');
-		exit(0);
-	}
+	$wb->send_header(WB_URL.'/index.php');
+//	if(INTRO_PAGE) {
+//	} else {
+//		header('Location: '.WB_URL.'/index.php');
+//		exit(0);
+//	}
 }
 
-if(ENABLED_ASP && isset($_POST['username']) && ( // form faked? Check the honeypot-fields.
-	(!isset($_POST['submitted_when']) OR !isset($_SESSION['submitted_when'])) OR 
-	($_POST['submitted_when'] != $_SESSION['submitted_when']) OR
-	(!isset($_POST['email-address']) OR $_POST['email-address']) OR
-	(!isset($_POST['name']) OR $_POST['name']) OR
-	(!isset($_POST['full_name']) OR $_POST['full_name'])
-)) {
-	exit(header("Location: ".WB_URL.PAGES_DIRECTORY.""));
+// form faked? Check the honeypot-fields.
+if(ENABLED_ASP && isset($_POST['username']) && (
+	(!isset($_POST['submitted_when']) OR !isset($_SESSION['submitted_when']) ) OR
+//		($_POST['submitted_when'] != $_SESSION['submitted_when']) OR
+			(!isset($_POST['email-address']) OR $_POST['email-address']) OR
+				(!isset($_POST['name']) OR $_POST['name']) OR
+					(!isset($_POST['full_name']) OR $_POST['full_name'])
+	))
+{
+	$wb->send_header(WB_URL.'/index.php');
 }
 
 // Load the language file
-if(!file_exists(WB_PATH.'/languages/'.DEFAULT_LANGUAGE.'.php')) {
-	exit('Error loading language file '.DEFAULT_LANGUAGE.', please check configuration');
-} else {
-	require_once(WB_PATH.'/languages/'.DEFAULT_LANGUAGE.'.php');
-	$load_language = false;
-}
+//if(!file_exists(WB_PATH.'/languages/'.LANGUAGE.'.php')) {
+//	exit('Error loading language file '.LANGUAGE.', please check configuration');
+//} else {
+//	require_once(WB_PATH.'/languages/'.LANGUAGE.'.php');
+//	$load_language = false;
+//}
 
-$page_id = (isset($_SESSION['PAGE_ID']) && ($_SESSION['PAGE_ID']!='') ? $_SESSION['PAGE_ID'] : 0);
+$lang = WB_PATH . '/languages/' . LANGUAGE . '.php';
+require_once(!file_exists($lang) ? WB_PATH . '/languages/EN.php' : $lang );
+
 $_SESSION['display_form'] = true;
 
-// Required page details
-// $page_id = 0;
+$page_id = isset($_SESSION['PAGE_ID']) ? intval($_SESSION['PAGE_ID']) : 0;
+
 $page_description = '';
 $page_keywords = '';
 define('PAGE_ID', $page_id);
@@ -65,14 +78,7 @@
 define('VISIBILITY', 'public');
 
 define('PAGE_CONTENT', WB_PATH.'/account/signup_form.php');
-/*
-// Set the page content include file
-if(isset($_POST['username'])) {
-	define('PAGE_CONTENT', WB_PATH.'/account/signup2.php');
-} else {
-	define('PAGE_CONTENT', WB_PATH.'/account/signup_form.php');
-}
-*/
+
 // Set auto authentication to false
 $auto_auth = false;
 
Index: branches/2.8.x/wb/account/htt/preferences.htt
===================================================================
--- branches/2.8.x/wb/account/htt/preferences.htt	(nonexistent)
+++ branches/2.8.x/wb/account/htt/preferences.htt	(revision 1773)
@@ -0,0 +1,142 @@
+<!-- BEGIN main_block -->
+<!-- BEGIN success_block -->
+	{SUCCESS_VALUE}
+<!-- END success_block -->
+<!-- BEGIN error_block -->
+	{ERROR_VALUE}
+<!-- END error_block -->
+<hr />
+<div class="account">
+
+<div class="details">
+<h3>{HEADING_MY_SETTINGS}</h3>
+<form name="details" action="" method="post">
+	<table>
+		<tr>
+			<td>{TEXT_DISPLAY_NAME}:</td>
+			<td class="input">
+				<input class="display_name" type="text" name="display_name" value="{DISPLAY_NAME}" readonly="readonly" />
+			</td>
+		</tr>
+		<tr>
+			<td>{TEXT_LANGUAGE}:</td>
+			<td class="input">
+				<select name="language" id="language">
+					<!-- BEGIN language_list_block -->
+						<option value="{CODE}"{SELECTED} style="background: url({FLAG}.png) no-repeat center left; padding-left: 20px;">{NAME} ({CODE})</option>
+					<!-- END language_list_block -->
+				</select>
+			</td>
+		</tr>
+		<tr>
+			<td>{TEXT_TIMEZONE}:</td>
+			<td class="input">
+				<select name="timezone" style="width: 98%;">
+					<option value="-20">{MOD_PREFERENCE_PLEASE_SELECT}</option>
+<!-- BEGIN timezone_list_block -->
+					<option value="{VALUE}" {SELECTED}>{NAME}</option>
+<!-- END timezone_list_block -->
+				</select>
+			</td>
+		</tr>
+		<tr>
+			<td>{TEXT_DATE_FORMAT}:</td>
+			<td class="input">
+				<select name="date_format" style="width: 98%;">
+					<option value="">{MOD_PREFERENCE_PLEASE_SELECT}</option>
+<!-- BEGIN date_format_list_block -->
+					<option value="{VALUE}" {SELECTED}>{NAME}</option>
+<!-- END date_format_list_block -->
+				</select>
+			</td>
+		</tr>
+		<tr>
+			<td>{TEXT_TIME_FORMAT}:</td>
+			<td class="input">
+				<select name="time_format" style="width: 98%;">
+					<option value="">{MOD_PREFERENCE_PLEASE_SELECT}</option>
+<!-- BEGIN time_format_list_block -->
+					<option value="{VALUE}" {SELECTED}>{NAME}</option>
+<!-- END time_format_list_block -->
+				</select>
+			</td>
+		</tr>
+        <tr>
+        	<td colspan="2">&nbsp;</td>
+        </tr>
+		<tr>
+			<td colspan="2" class="button">
+				<button type="reset" name="reset" value="reset">{TEXT_RESET}</button>
+				<button type="submit" name="action" value="details">{MOD_PREFERENCE_SAVE_SETTINGS}</button>
+            	<button type="button" value="cancel" onclick="javascript:window.location='{HTTP_REFERER}';">{TEXT_CANCEL}</button>
+			</td>
+		</tr>
+	</table>
+</form>
+</div>
+<div class="email">
+<h3>{HEADING_MY_EMAIL}</h3>
+<form name="email" action="" method="post">
+	<table>
+		<tr>
+			<td>{TEXT_EMAIL}:</td>
+			<td class="input">
+				<input type="text" name="email" value="{EMAIL}" style="width: 98%;" />
+			</td>
+		</tr>
+		<tr>
+			<td>{TEXT_CURRENT_PASSWORD}:</td>
+			<td class="input">
+				<input type="password" name="current_password" style="width: 98%;" />
+			</td>
+		</tr>
+        <tr>
+        	<td colspan="2">&nbsp;</td>
+        </tr>
+		<tr>
+			<td colspan="2" class="button">
+				<button type="reset" name="reset" value="reset">{TEXT_RESET}</button>
+				<button type="submit" name="action" value="email">{MOD_PREFERENCE_SAVE_EMAIL}</button>
+            	<button type="button" value="cancel" onclick="javascript:window.location='{HTTP_REFERER}';">{TEXT_CANCEL}</button>
+			</td>
+		</tr>
+	</table>
+</form>
+</div>
+<div class="password">
+<h3>{HEADING_MY_PASSWORD}</h3>
+<form name="password" action="" method="post">
+	<table>
+		<tr>
+			<td>{TEXT_CURRENT_PASSWORD}:</td>
+			<td class="input">
+				<input type="password" name="current_password" style="width: 98%;" />
+			</td>
+		</tr>
+		<tr>
+			<td>{TEXT_NEW_PASSWORD}:</td>
+			<td class="input">
+				<input type="password" name="new_password" style="width: 98%;" />
+			</td>
+		</tr>
+		<tr>
+			<td>{TEXT_RETYPE_NEW_PASSWORD}:</td>
+			<td class="input">
+				<input type="password" name="new_password2" style="width: 98%;" />
+			</td>
+		</tr>
+        <tr>
+        	<td colspan="2">&nbsp;</td>
+        </tr>
+		<tr>
+			<td colspan="2" class="button">
+				<button type="reset" name="reset" value="reset">{TEXT_RESET}</button>
+				<button type="submit" name="action" value="password">{MOD_PREFERENCE_SAVE_PASSWORD}</button>
+            	<button type="button" value="cancel" onclick="javascript:window.location='{HTTP_REFERER}';">{TEXT_CANCEL}</button>
+			</td>
+		</tr>
+	</table>
+</form>
+</div>
+</div>
+<!-- END main_block -->
\ No newline at end of file

Property changes on: branches/2.8.x/wb/account/htt/preferences.htt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id Revision HeadURL
\ No newline at end of property
Index: branches/2.8.x/wb/account/htt/signup.htt
===================================================================
--- branches/2.8.x/wb/account/htt/signup.htt	(nonexistent)
+++ branches/2.8.x/wb/account/htt/signup.htt	(revision 1773)
@@ -0,0 +1,92 @@
+<!-- BEGIN main_block -->
+<!-- BEGIN message_block -->
+{MESSAGE_VALUE}
+<!-- END message_block -->
+
+<hr />
+<div class="account">
+<div class="signup">
+
+<form name="signup" action="{ACTION_URL}" method="post">
+	<input type="hidden" name="action" value="send" />
+	<input type="hidden" name="submitted_when" value="{SET_TIME}" />
+<!-- BEGIN asp_block -->
+	<p class="{DISPLAY_ASP}" id="pot">
+		<label>If you're human leave this blank:</label>
+		<input name="robotest" id="robotest" class="robotest" />
+		<label for="email-address">Leave this field email-address blank:</label>
+		<input id="email-address" name="email-address" size="60" value="" /><br />
+		<label for="name">Leave this field name blank:</label>
+		<input id="name" name="name" size="60" value="" /><br />
+		<label for="full_name">Leave this field full_name blank:</label>
+		<input id="full_name" name="full_name" size="60" value="" /><br />
+	</p>
+<!-- END asp_block -->
+	<h3>{HEADING_SIGNUP}</h3>
+	<table>
+		<tr>
+			<td>{TEXT_USERNAME}:</td>
+			<td class="input">
+				<input type="text" name="login_name" value="{DISPLAY_USER}" />
+			</td>
+		</tr>
+		<tr>
+			<td>{TEXT_DISPLAY_NAME}:</td>
+			<td class="input">
+				<input type="text" name="display_name" value="{DISPLAY_NAME}" />
+			</td>
+		</tr>
+		<tr>
+			<td>{TEXT_EMAIL}:</td>
+			<td class="input">
+				<input type="text" name="email" value="{EMAIL}" />
+			</td>
+		</tr>
+		<tr>
+			<td>{TEXT_LANGUAGE}:</td>
+			<td class="input">
+				<select name="language" id="language">
+					<!-- BEGIN language_list_block -->
+						<option value="{CODE}"{SELECTED} style="background: url({FLAG}.png) no-repeat center left; padding-left: 20px;">{NAME} ({CODE})</option>
+					<!-- END language_list_block -->
+				</select>
+			</td>
+		</tr>
+<!-- BEGIN password_block -->
+		<tr>
+			<td colspan="2"><div class="note">{HELP_SIGNUP_REMEMBER_PASSWORD}</div></td>
+		</tr>
+		<tr>
+			<td>{TEXT_NEW_PASSWORD}:</td>
+			<td class="input">
+				<input type="password" name="new_password_1" />
+			</td>
+		</tr>
+		<tr>
+			<td>{TEXT_RETYPE_NEW_PASSWORD}:</td>
+			<td class="input">
+				<input type="password" name="new_password_2" />
+			</td>
+		</tr>
+<!-- END password_block -->
+<!-- BEGIN captcha_block -->
+		<tr>
+			<td class="field_title">{TEXT_VERIFICATION}:</td>
+			<td class="input">{CAPTCHA}</td>
+		</tr>
+<!-- END captcha_block -->
+        <tr>
+        	<td colspan="2">&nbsp;</td>
+        </tr>
+		<tr>
+			<td colspan="2" class="button">
+        		<button type="submit" name="submit" value="">{TEXT_SIGNUP}</button>
+        		<button type="reset" name="reset" value="reset">{TEXT_RESET}</button>
+				<button type="button" value="cancel" onclick="javascript:window.location='{HTTP_REFERER}';">{TEXT_CANCEL}</button>
+			</td>
+		</tr>
+	</table>
+</form>
+</div>
+</div>
+<!-- END main_block -->
\ No newline at end of file

Property changes on: branches/2.8.x/wb/account/htt/signup.htt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id Revision HeadURL
\ No newline at end of property
Index: branches/2.8.x/wb/account/htt/login.htt
===================================================================
--- branches/2.8.x/wb/account/htt/login.htt	(revision 1772)
+++ branches/2.8.x/wb/account/htt/login.htt	(revision 1773)
@@ -3,26 +3,27 @@
 {MESSAGE_VALUE}
 <!-- END message_block -->
 <hr /><br />
-<div class="login-box rounded" style="overflow: hidden;width:100%;">
+<div class="account">
+<div class="login-box">
 <form class="login-box" action="{ACTION_URL}" method="post">
 	<input type="hidden" name="action" value="login" />
 	<input type="hidden" name="username_fieldname" value="{USER_FIELDNAME}" />
 	<input type="hidden" name="password_fieldname" value="{PASSWORD_FIELDNAME}" />
 	<input type="hidden" name="redirect" value="{REDIRECT_URL}" />
-
-<table summary="">
+<h3>{TEXT_LOGIN}</h3>
+<table>
 <tbody>
-<tr class="row1">
-	<td colspan="3"><h1>{TEXT_LOGIN}</h1></td>
-</tr>
-<tr class="row2">
-	<td colspan="3">
+<tr>
+	<td colspan="2" class="button">
 	<strong>{THISAPP_MESSAGE_VALUE}</strong>
 	</td>
 </tr>
-<tr class="row3">
-	<td class="bold">{TEXT_USERNAME}:</td>
-	<td colspan="2">
+<tr>
+	<td colspan="2">&nbsp;</td>
+</tr>
+<tr>
+	<td>{TEXT_USERNAME}:</td>
+	<td class="input">
 		<input type="text" name="{USER_FIELDNAME}" maxlength="30"  style="width:98%;"/>
     	<script type="text/javascript">
     	// document.login.{USER_FIELDNAME}.focus();
@@ -31,9 +32,9 @@
     	</script>
 	</td>
 </tr>
-<tr class="row4">
-	<td class="bold">{TEXT_PASSWORD}:</td>
-	<td colspan="2">
+<tr>
+	<td>{TEXT_PASSWORD}:</td>
+	<td class="input">
 		<input type="password" name="{PASSWORD_FIELDNAME}" maxlength="30" style="width:98%;"/>
 	</td>
 </tr>
@@ -40,25 +41,24 @@
 <!-- BEGIN show_smart_login_block -->
 <tr>
 	<td>&nbsp;</td>
-	<td colspan="2">
+	<td class="input">
 		<input type="checkbox" name="remember" id="remember" value="true"/>
 		<label for="remember">{TEXT_REMEMBER_ME}</label>
 	</td>
 </tr>
 <!-- END show_smart_login_block -->
-<tr class="submit">
-	<td>
-	<p><input type="submit" name="submit" value="{TEXT_LOGIN}"  /></p>
+<tr>
+	<td colspan="2">&nbsp;</td>
+</tr>
+<tr>
+	<td colspan="2" class="button">
+	<button type="submit" name="submit" value="submit">{TEXT_LOGIN}</button>
+	<button type="reset" name="reset" value="reset">{TEXT_RESET}</button>
+    <button type="button" value="cancel" onclick="javascript:window.location='{WB_URL}/';" >{TEXT_CANCEL}</button>
 	</td>
-	<td>
-	<p><input type="reset" name="reset" value="{TEXT_RESET}" /></p>
-	</td>
-	<td>
-	<p><button type="button" value="cancel" onclick="javascript:window.location='{WB_URL}/';" >{TEXT_CANCEL}</button></p>
-	</td>
 </tr>
-<tr class="row6">
-	<td colspan="3">
+<tr>
+	<td colspan="2" class="button">
 	<p class="link"><a href="{FORGOT_URL}">{TEXT_FORGOTTEN_DETAILS}</a></p>
 	</td>
 </tr>
@@ -66,5 +66,5 @@
 </table>
 </form>
 </div>
-
+</div>
 <!-- END main_block -->
\ No newline at end of file
Index: branches/2.8.x/wb/account/htt/success.htt
===================================================================
--- branches/2.8.x/wb/account/htt/success.htt	(revision 1772)
+++ branches/2.8.x/wb/account/htt/success.htt	(revision 1773)
@@ -1,5 +1,5 @@
 <!-- BEGIN main_block -->
-<div class="msg-box info">
+<div class="msg-box note center">
 <!-- BEGIN show_registration_block -->
 	<p>{MESSAGE_VALUE}</p>
 <!-- END show_registration_block -->
Index: branches/2.8.x/wb/account/htt/blue.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/account/htt/blue.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/account/htt/confirm.htt
===================================================================
--- branches/2.8.x/wb/account/htt/confirm.htt	(nonexistent)
+++ branches/2.8.x/wb/account/htt/confirm.htt	(revision 1773)
@@ -0,0 +1,57 @@
+<!-- BEGIN main_block -->
+<!-- BEGIN message_block -->
+{MESSAGE_VALUE}
+<!-- END message_block -->
+
+<hr />
+<div class="account">
+<form class="new-signup" name="signup" action="{ACTION_URL}" method="post">
+	<input type="hidden" name="action" value="save_confirm" />
+	<input type="hidden" name="confirm_code" value="{CONFIRM_CODE}" />
+	<h3>{HEADING_SIGNUP}</h3>
+<!-- BEGIN asp_block -->
+	<p class="{DISPLAY_ASP}" id="pot">
+		<label>If you're human leave this blank:</label>
+		<input name="robotest" id="robotest" class="robotest" />
+		<label for="email-address">Leave this field email-address blank:</label>
+		<input id="email-address" name="email-address" size="60" value="" /><br />
+		<label for="name">Leave this field name blank:</label>
+		<input id="name" name="name" size="60" value="" /><br />
+		<label for="full_name">Leave this field full_name blank:</label>
+		<input id="full_name" name="full_name" size="60" value="" /><br />
+	</p>
+<!-- END asp_block -->
+	<table>
+        <tbody>
+		<tr>
+			<td colspan="2">{HEADING_MESSAGE_WELCOME}:</td>
+		</tr>
+<!-- BEGIN input_block -->
+		<tr>
+			<td colspan="2"><div class="note">{HELP_CONFIRM_PASSWORD}</div></td>
+		</tr>
+		<tr>
+			<td>{TEXT_USERNAME}:</td>
+			<td class="input">
+				<input type="text" name="new_loginname" value="{DISPLAY_USER}" />
+			</td>
+		</tr>
+		<tr>
+			<td>{TEXT_PASSWORD}:</td>
+			<td class="input">
+				<input type="password" name="new_password_1" />
+			</td>
+		</tr>
+<!-- END input_block -->
+		<tr>
+			<td colspan="2" class="button">
+        		<button type="submit" name="submit" value="{TEXT_SIGNUP}">{TEXT_SIGNUP}</button>
+        		<button type="reset" name="reset" value="reset">{TEXT_RESET}</button>
+				<button type="button" value="cancel" onclick="javascript:window.location='{HTTP_REFERER}';">{TEXT_CANCEL}</button>
+			</td>
+		</tr>
+    </tbody>
+	</table>
+</form>
+</div>
+<!-- END main_block -->
\ No newline at end of file

Property changes on: branches/2.8.x/wb/account/htt/confirm.htt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id Revision HeadURL
\ No newline at end of property
Index: branches/2.8.x/wb/account/htt/forgot.htt
===================================================================
--- branches/2.8.x/wb/account/htt/forgot.htt	(revision 1772)
+++ branches/2.8.x/wb/account/htt/forgot.htt	(revision 1773)
@@ -3,46 +3,43 @@
 {MESSAGE_VALUE}
 <!-- END message_block -->
 <hr /><br />
-<div class="login-box rounded" style="overflow: hidden;width:100%;">
+<div class="account">
+<div class="login-box">
 <form class="login-box" action="{ACTION_URL}" method="post">
 	<input type="hidden" name="action" value="forgot" />
 	<input type="hidden" name="url" value="{URL}" />
-
-<table summary="">
+<h3>{MENU_FORGOT}</h3>
+<table>
 <tbody>
-<tr class="row1">
-	<td colspan="3"><h1>{MENU_FORGOT}</h1></td>
-</tr>
-<tr class="row2">
-	<td colspan="3">
+<tr>
+	<td colspan="2" class="button">
 	<strong>{THISAPP_MESSAGE_VALUE}</strong>
 	</td>
 </tr>
-<tr class="row3">
-	<td colspan="3">&nbsp;</td>
+<tr>
+	<td colspan="2">&nbsp;</td>
 </tr>
-<tr class="row4">
-	<td class="bold">{TEXT_EMAIL}:</td>
-	<td colspan="2">
+<tr>
+	<td>{TEXT_EMAIL}:</td>
+	<td class="input">
 		<input type="text" name="email" maxlength="255" style="width:98%;"/>
 	</td>
 </tr>
-<tr class="row5" >
-	<td colspan="3">&nbsp;</td>
+<tr>
+	<td colspan="2">&nbsp;</td>
 </tr>
-<tr class="submit">
-	<td>
-	<p><input type="submit" name="submit" value="{TEXT_SEND_DETAILS}"  /></p>
+<tr>
+	<td colspan="2">&nbsp;</td>
+</tr>
+<tr>
+	<td colspan="2" class="button">
+		<button type="submit" name="submit" value="email">{TEXT_SEND_DETAILS}</button>
+		<button type="reset" name="reset" value="reset">{TEXT_RESET}</button>
+        <button type="button" value="cancel" onclick="javascript:window.location='{WB_URL}/';" >{TEXT_CANCEL}</button>
 	</td>
-	<td>
-	<p><input type="reset" name="reset" value="{TEXT_RESET}" /></p>
-	</td>
-	<td>
-	<p><button type="button" value="cancel" onclick="javascript:window.location='{WB_URL}/';" >{TEXT_CANCEL}</button></p>
-	</td>
 </tr>
 <tr>
-	<td class="row6" colspan="3">
+	<td class="button" colspan="2">
 	<p class="link"><a href="{LOGIN_URL}">{TEXT_NEED_TO_LOGIN}</a></p>
 	</td>
 </tr>
@@ -50,4 +47,5 @@
 </table>
 </form>
 </div>
+</div>
 <!-- END main_block -->
\ No newline at end of file
Index: branches/2.8.x/wb/account/save_confirm.php
===================================================================
--- branches/2.8.x/wb/account/save_confirm.php	(nonexistent)
+++ branches/2.8.x/wb/account/save_confirm.php	(revision 1773)
@@ -0,0 +1,59 @@
+<?php
+/**
+ *
+ * @category        frontend
+ * @package         account
+ * @author          WebsiteBaker Project
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
+ * @link			http://www.websitebaker2.org/
+ * @license         http://www.gnu.org/licenses/gpl.html
+ * @platform        WebsiteBaker 2.8.x
+ * @requirements    PHP 5.2.2 and higher
+ * @version         $Id$
+ * @filesource		$HeadURL$
+ * @lastmodified    $Date$
+ *
+ */
+
+/* -------------------------------------------------------- */
+// Must include code to stop this file being accessed directly
+if(defined('WB_PATH') == false)
+{
+	die('<h2 style="color:red;margin:3em auto;text-align:center;">Cannot access this file directly</h2>');
+}
+/* -------------------------------------------------------- */
+
+require_once(dirname(__FILE__).'/AccountSignup.php');
+AccountSignup::deleteOutdatedConfirmations();
+$sPassword = isset($_POST['new_password_1'])     ? mysql_escape_string($_POST['new_password_1']) : '';
+$sLoginName = isset($_POST['new_loginname'])     ? mysql_escape_string($_POST['new_loginname']) : '';
+$sConfirmationId = isset($_POST['confirm_code']) ? mysql_escape_string($_POST['confirm_code'])   : '';
+
+$bSendRegistrationMailtoUser = false;
+$bSendRegistrationMailtoAdmin = false;
+$aUser = array();
+if( ($sPassword=='') || ($sLoginName=='') ) {
+	msgQueue::add( $mLang->MESSAGE_LOGIN_BOTH_BLANK);
+} else {
+	if( $iUserId = AccountSignup::checkPassWordConfirmCode( $sPassword, $sConfirmationId )) {
+		msgQueue::add( $mLang->MESSAGE_ACTIVATED_NEW_USER, true );
+		AccountSignup::saveNewConfirmation($sConfirmationId);
+        $email_to = AccountSignup::emailUser($iUserId);
+        $bSaveRegistration = $iUserId > 0;
+		$sSubmitAction = 'finished'; // default action
+		$sql  = 'SELECT * FROM `'.TABLE_PREFIX.'users` ';
+		$sql .= 'WHERE `user_id` ='.$iUserId.' ';
+		if($oRes = $database->query($sql)) {
+            $aUser = $oRes->fetchRow(MYSQL_ASSOC);
+            $bSaveRegistration = true;
+            $sDisplayName = $aUser['display_name'];
+            $email_to = $aUser['email'];
+            $sLoginIp = $aUser['login_ip'];
+            $sLoginName = $aUser['username'];
+		}
+
+	} else {
+		msgQueue::add( $mLang->MESSAGE_FAILED_NEW_USER );
+	}
+}
+

Property changes on: branches/2.8.x/wb/account/save_confirm.php
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id Revision HeadURL
\ No newline at end of property
Index: branches/2.8.x/wb/account/confirm_form.php
===================================================================
--- branches/2.8.x/wb/account/confirm_form.php	(nonexistent)
+++ branches/2.8.x/wb/account/confirm_form.php	(revision 1773)
@@ -0,0 +1,68 @@
+<?php
+/**
+ *
+ * @category        frontend
+ * @package         account
+ * @author          WebsiteBaker Project
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
+ * @link			http://www.websitebaker2.org/
+ * @license         http://www.gnu.org/licenses/gpl.html
+ * @platform        WebsiteBaker 2.8.x
+ * @requirements    PHP 5.2.2 and higher
+ * @version         $Id$
+ * @filesource		$HeadURL$
+ * @lastmodified    $Date$
+ *
+ */
+/* -------------------------------------------------------- */
+// Must include code to stop this file being accessed directly
+if(defined('WB_PATH') == false)
+{
+	die('<h2 style="color:red;margin:3em auto;text-align:center;">Cannot access this file directly</h2>');
+}
+/* -------------------------------------------------------- */
+
+	require_once(dirname(__FILE__).'/AccountSignup.php');
+
+    	// load module language file
+    	$mLang = ModLanguage::getInstance();
+
+		$sConfirmationId = ( isset($_GET['id']) ? $_GET['id'] : ( isset($_POST['confirm_code']) ? $_POST['confirm_code'] : '' ) );
+		$sSubmitAction = 'show'; // default action
+		$sSubmitAction = ( isset($_POST['action']) ? $_POST['action'] : $sSubmitAction );
+		if( isset($_POST['action_cancel']))
+		{
+			unset($_POST);
+			$sSubmitAction = 'cancel'; // default action
+		}
+
+		$output = '';
+		msgQueue::clear();
+		switch($sSubmitAction) :
+			case 'save_confirm':
+				include(dirname(__FILE__).'/save_confirm.php');
+        		if($sSubmitAction=='finished') {
+        			include(dirname(__FILE__).'/confirm_mails.php');
+     				break;
+           		}
+				if(!msgQueue::isEmpty()) {
+					include(dirname(__FILE__).'/confirm_form_mask.php');
+				}
+				break;
+			default:
+				include(dirname(__FILE__).'/confirm_form_mask.php');
+		endswitch; // end of switch
+
+
+//		if(!msgQueue::isEmpty())
+//		{
+//		}
+//		if( ($msg = msgQueue::getSuccess()) != '')
+//		{
+//			$output = $admin->format_message($msg, 'ok').$output;
+//		}
+//		if( ($msg = msgQueue::getError()) != '')
+//		{
+//			$output = $admin->format_message($msg, 'error').$output;
+//		}
+//		print $output;

Property changes on: branches/2.8.x/wb/account/confirm_form.php
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id Revision HeadURL
\ No newline at end of property
Index: branches/2.8.x/wb/account/frontend.css
===================================================================
--- branches/2.8.x/wb/account/frontend.css	(revision 1772)
+++ branches/2.8.x/wb/account/frontend.css	(revision 1773)
@@ -3,26 +3,28 @@
   CSS definition for Website Baker module: WB-Preferences
   Copyright (C) 2008, Werner von der Decken
   Contact me: wkl(at)isteam.de, http://isteam.de
-
   This CSS file is free software. You can redistribute it and/or modify it
   under the terms of the GNU General Public License  - version 2 or later,
   as published by the Free Software Foundation: http://www.gnu.org/licenses/gpl.html.
-
   This CSS file 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.
 */
-	.mod_preferences_error {
-		background-color:#ffb0b0;
-		padding:5px;
-		border:dotted 1px #ff0000;
-		color:#ff0000;
-	}
-	.mod_preferences_success {
-		background-color:#b0ffb0;
-		padding:5px;
-		border:dotted 1px #303030;
-		color:#303030;
-	}
+.mod_preferences_error { background-color :#ffb0b0; padding :5px; border :dotted 1px #ff0000; color :#ff0000; }
+.mod_preferences_success { background-color :#b0ffb0; padding :5px; border :dotted 1px #303030; color :#303030; }
+div.account { width :80%; margin :1em auto; }
+div.account div.signup, 
+div.account div.details, 
+div.account div.email, 
+div.account div.password { background :transparent url(htt/blue.png) repeat-x top; width :100%; overflow :hidden; border :2px solid #cccccc; margin-bottom :1em; border-radius :10px; -khtml-border-radius :10px; -webkit-border-radius :10px; -moz-border-radius :10px; }
+div.account h3 { width :100%; color :#ffffff; padding :5px; margin-top :3px; }
+div.account table { vertical-align :0px; table-layout :fixed; width :100%; margin :10px auto; }
+div.account table td { width :30%; }
+div.account table td.button { width :100%; text-align :center; }
+div.account table td.button button { text-align :center; padding :2px; }
+div.account table td.input { width :50%; }
+.nixhier { display :none; }
+.center { text-align :center; }
+div.account table td.input input { width :90%; }
 /* ]]> */
Index: branches/2.8.x/wb/account/languages/DE.php
===================================================================
--- branches/2.8.x/wb/account/languages/DE.php	(revision 1772)
+++ branches/2.8.x/wb/account/languages/DE.php	(revision 1773)
@@ -25,7 +25,7 @@
 **/
 
 // Array fuer alle sprachabhaengigen Textausgaben im Front- und Backend
-// Hinweis: Verwende nachfolgende Namenskonvention für die Sprachausgabe des Moduls: $MOD_MODULE_DIRECTORY
+// Hinweis: Verwende nachfolgende Namenskonvention fÃ¼r die Sprachausgabe des Moduls: $MOD_MODULE_DIRECTORY
 $MOD_PREFERENCE = array(
 	'PLEASE_SELECT' => 'bitte w&auml;hlen',
 	'DETAILS_SAVED'	=> 'allgemeine Einstellungen ge&auml;ndert',
@@ -37,11 +37,11 @@
 $HEADING['SIGNUP2_CONFIMED_REGISTRATION'] = 'Kontofreischaltung';
 $HEADING['MESSAGE_WELCOME'] = 'Herzlich willkomen zur Freischaltung Ihres Konto';
 
-$HELP['SIGNUP_REMEMBER_PASSWORD'] = '<i>Bitte merken Sie sich Ihr Kennwort! Sie ben&ouml;tigen das Kennwort um die Aktivierung abzuschliessen!</i>';
-$HELP['CONFIRM_PASSWORD'] = '<i>Geben Sie bitte Ihr Kennwort ein um die Aktivierung abzuschliessen!</i>';
+$HELP['SIGNUP_REMEMBER_PASSWORD'] = '<i>Bitte merken Sie sich Ihren Loginnamen und das Kennwort! Sie ben&ouml;tigen den Loginnamen und das Kennwort um die Aktivierung abzuschliessen!</i>';
+$HELP['CONFIRM_PASSWORD'] = '<i>Geben Sie bitte Ihren Loginnamen und das Kennwort ein um die Aktivierung abzuschliessen!</i>';
 
-$MESSAGE['ACTIVATED_NEW_USER'] = '<b>Das Konto wurde freigeschaltet. Sie können sich einloggen</b>';
-$MESSAGE['FAILED_NEW_USER'] = '<b>Aktiverung abgelaufen oder Kennwort verkehrt</b>';
+$MESSAGE['ACTIVATED_NEW_USER'] = '<b>Das Konto wurde freigeschaltet. Sie kÃ¶nnen sich einloggen</b>';
+$MESSAGE['FAILED_NEW_USER'] = '<b>Die Aktiverung ist abgelaufen oder verkehrtes Kennwort</b>';
 $MESSAGE['SIGNUP2_ADMIN_INFO'] = '
 Es wurde ein neuer User regisriert.
 
@@ -59,7 +59,7 @@
 
 Sie erhalten diese E-Mail, weil sie ein neues Passwort angefordert haben.
 
-Ihre neuen Logindaten für {LOGIN_WEBSITE_TITLE} lauten:
+Ihre neuen Logindaten fÃ¼r {LOGIN_WEBSITE_TITLE} lauten:
 
 Loginname: {LOGIN_NAME}
 Passwort: {LOGIN_PASSWORD}
@@ -66,9 +66,9 @@
 
 Das bisherige Passwort wurde durch das neue Passwort oben ersetzt.
 
-Aus Sicherheitsgründen sollten Sie dieses Kennwort sofort ändern.
+Aus SicherheitsgrÃ¼nden sollten Sie dieses Kennwort sofort Ã¤ndern.
 
-Mit freundlichen Grüssen
+Mit freundlichen GrÃ¼ssen
 ----------------------------------------
 Diese E-Mail wurde automatisch erstellt!
 ';
@@ -77,12 +77,12 @@
 
 Herzlich willkommen bei \'{LOGIN_WEBSITE_TITLE}\'
 
-Ihre Logindaten für \'{LOGIN_WEBSITE_TITLE}\' lauten:
+Ihre Logindaten fÃ¼r \'{LOGIN_WEBSITE_TITLE}\' lauten:
 Loginname: {LOGIN_NAME}
 Kennwort: {LOGIN_PASSWORD}
 
-Vielen Dank für Ihre Registrierung.
-Aus Sicherheitsgründen sollten Sie dieses Kennwort sofort ändern.
+Vielen Dank fÃ¼r Ihre Registrierung.
+Aus SicherheitsgrÃ¼nden sollten Sie dieses Kennwort sofort Ã¤ndern.
 
 ';
 
@@ -91,15 +91,15 @@
 ."Dies ist eine automatisch generierte E-Mail. Die Absenderadresse dieser\n"
 ."E-Mail ist nur zum Versand, und nicht zum Empfang von Nachrichten\n"
 ."eingerichtet! Falls Sie diese E-Mail versehentlich erhalten haben,\n"
-."löschen diese Nachricht bitte von Ihrem Computer.\n"
+."lÃ¶schen Sie diese Nachricht bitte von Ihrem Computer.\n"
 ."***********************************************************************\n";
 
 $MESSAGE['INCORRECT_CAPTCHA'] = 'Die eingegebene Pr&uuml;fziffer stimmt nicht &uuml;berein. Wenn Sie Probleme mit dem Lesen der Pr&uuml;fziffer haben, bitte schreiben Sie eine E-Mail an den <a href="mailto:{{webmaster_email}}">Webmaster</a>';
 
-$MESSAGE['CONFIRMED']  = 'Ihr Kennwort finden Sie weiter unten. Verwenden Sie sie, um Ihre Softwareeinstellungen und -Funktionen zu verwalten. Ändern Sie aus Sicherheitsgründen umgehend Ihr Kennwort.';
+$MESSAGE['CONFIRMED']  = 'Ihr Kennwort finden Sie weiter unten. Verwenden Sie sie, um Ihre Softwareeinstellungen und -Funktionen zu verwalten. Ã„ndern Sie aus SicherheitsgrÃ¼nden umgehend Ihr Kennwort.';
 $MESSAGE['CONFIRMED'] .= 'Kennwort: ';
 $MESSAGE['CONFIRMED'] .= 'Vielen Dank!';
-$MESSAGE['CHANGE_PASSWORD'] = 'Aus Sicherheitsgründen sollten Sie dieses Kennwort sofort ändern. Besuchen Sie dazu folgende Website:';
+$MESSAGE['CHANGE_PASSWORD'] = 'Aus SicherheitsgrÃ¼nden sollten Sie dieses Kennwort sofort Ã¤ndern. Besuchen Sie dazu folgende Website:';
 
 $MESSAGE['LOGIN_BOTH_BLANK'] = 'Bitte geben Sie Ihren Loginnamen und Passwort ein';
 $MESSAGE['LOGIN_PASSWORD_BLANK'] = 'Bitte geben Sie Ihr Passwort ein';
@@ -108,7 +108,7 @@
 $MESSAGE['LOGIN_USERNAME_BLANK'] = 'Bitte geben Sie Ihren Loginnamen ein';
 $MESSAGE['LOGIN_USERNAME_TOO_LONG'] = 'Der angegebene Loginname ist zu lang';
 $MESSAGE['LOGIN_USERNAME_TOO_SHORT'] = 'Der angegebene Loginname ist zu kurz';
-$MESSAGE['MAIL_GENERATED'] = 'Diese Nachricht wurde automatisch erstellt und kann nicht beantwortet werden. Wenn Sie Fragen haben oder Hilfe benötigen, wenden Sie sich bitte an <a href="mailto:{{webmaster_email}}">Webmaster</a>';
+$MESSAGE['MAIL_GENERATED'] = 'Diese Nachricht wurde automatisch erstellt und kann nicht beantwortet werden. Wenn Sie Fragen haben oder Hilfe benÃ¶tigen, wenden Sie sich bitte an <a href="mailto:{{webmaster_email}}">Webmaster</a>';
 
 $MESSAGE['SEND_CONFIRMED_REGISTRATION'] = "
 
@@ -116,24 +116,39 @@
 
 Herzlich willkommen bei {LOGIN_WEBSITE_TITLE}!
 
-Bitte aktivieren Sie Ihren kostenlosen Account und klicken Sie auf folgenden Link um die Aktivierung abzuschließen:
+Bitte aktivieren Sie Ihren kostenlosen Account und klicken Sie auf folgenden Link um die Aktivierung abzuschlieÃŸen:
 
 {LINK}
 Sollte der Link nicht anklickbar sein, so kopieren Sie ihn bitte in die Adresszeile Ihres Browsers!
 
-Der Aktivierungslink ist gültig bis {CONFIRMED_REGISTRATION_ENDTIME}
+Der Aktivierungslink ist gÃ¼ltig bis {CONFIRMED_REGISTRATION_ENDTIME}
 
-Mit freundlichen Grüßen,
+Mit freundlichen GrÃ¼ÃŸen,
 Ihr Support Team
 
 ";
+$MESSAGE['SEND_CONFIRMED_ACTIVATION'] = "
+
+Hallo {LOGIN_DISPLAY_NAME},
+
+Herzlich willkommen bei {LOGIN_WEBSITE_TITLE}!
+
+Sie haben sich erfolgreich aktiviert. Sie kÃ¶nnen sich jetzt anmelden.
+
+Bei Problemen oder Fragen wenden Sie sich bitte per E-Mail an den <a href=\"mailto:{{webmaster_email}}\">Webmaster</a>
+
+Mit freundlichen GrÃ¼ÃŸen,
+Ihr Support Team
+
+";
+
 $MESSAGE['SIGNUP2_SUBJECT_NEW_USER'] = 'Vielen Dank f&uuml;r Ihre Registrierung!';
 $MESSAGE['SIGNUP2_NEW_USER'] = 'Es wurde ein neuer User regisriert';
 $MESSAGE['SIGNUP2_SUBJECT_LOGIN_INFO'] = 'Deine WB Logindaten ...';
 $MESSAGE['SIGNUP_NO_EMAIL'] = 'Bitte geben Sie Ihre E-Mail Adresse an';
 
-$MESSAGE['SIGNUP_CONFIRMED_REGISTRATION'] = "Um Ihr Konto zu nutzen zu k&ouml;nnen, erhalten Sie eine E-Mail mit einem Link, um Ihr Konto zu aktivieren.
-<br /><b>Aktivierung muss innerhalb 24 Stunden erfolgen, da ansonsten das Konto wieder gel&ouml;scht wird.</b>
+$MESSAGE['SIGNUP_CONFIRMED_REGISTRATION'] = "Um Ihr Konto nutzen zu k&ouml;nnen, erhalten Sie eine E-Mail mit einem Link, um Ihr Konto zu aktivieren.
+<br /><b>Die Aktivierung muss innerhalb 24 Stunden erfolgen, da ansonsten das Konto wieder gel&ouml;scht wird.</b>
 ";
 $MESSAGE['SIGNUP_REGISTRATION'] = 'Sie erhalten Ihre Zugangsdaten per E-Mail!!';
 $MESSAGE['SIGNUP_NEW_USER'] = '<b>Das Konto wurde angelegt.</b>';
@@ -145,3 +160,4 @@
 $TEXT['PASSWORD'] = 'Kennwort';
 $TEXT['ACTIVATION'] = 'Freischalten';
 $TEXT['SEND'] = 'Anfordern';
+$TEXT['USERNAME'] = 'Loginname';
Index: branches/2.8.x/wb/account/AccountSignup.php
===================================================================
--- branches/2.8.x/wb/account/AccountSignup.php	(nonexistent)
+++ branches/2.8.x/wb/account/AccountSignup.php	(revision 1773)
@@ -0,0 +1,134 @@
+<?php
+/**
+ *
+ * @category        frontend
+ * @package         account
+ * @author          WebsiteBaker Project
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
+ * @link			http://www.websitebaker2.org/
+ * @license         http://www.gnu.org/licenses/gpl.html
+ * @platform        WebsiteBaker 2.8.x
+ * @requirements    PHP 5.2.2 and higher
+ * @version         $Id$
+ * @filesource		$HeadURL$
+ * @lastmodified    $Date$
+ *
+ */
+
+ require_once(WB_PATH."/framework/class.frontend.php");
+
+ class AccountSignup
+ {
+
+	 const SIGNUP_DEBUG = false;
+
+	 static public $oWbInstance = null;
+
+     static public function getWbInstance()
+     {
+          if( $oWbInstance = null ) {
+              $oWbInstance = new frontend();
+          }
+     }
+
+	/**
+	 * get systemadnistrator e-mail
+	 *
+	 * @return string
+	 */
+	static public function emailAdmin()
+	{
+        $retval = '';
+		$sql  = 'SELECT `email` FROM `'.TABLE_PREFIX.'users` ';
+		$sql .= 'WHERE `user_id`=\'1\' ';
+        $retval = WbDatabase::getInstance()->get_one($sql);
+		return $retval;
+	}
+
+	/**
+	 * get user e-mail
+	 *
+	 * @return string
+	 */
+	static public function emailUser($iUserId=1)
+	{
+        $retval = '';
+		$sql  = 'SELECT `email` FROM `'.TABLE_PREFIX.'users` ';
+		$sql .= 'WHERE `user_id`=\''.$iUserId.'\' ';
+        $retval = WbDatabase::getInstance()->get_one($sql);
+		return $retval;
+	}
+
+	 /**
+	  * hidden last two blocks from user ip
+	  *
+	  * @return string
+	  */
+	 static public function ObfuscateIp()
+	 {
+	    $sClientIp = (isset($_SERVER['REMOTE_ADDR']))
+	                         ? $_SERVER['REMOTE_ADDR'] : '000.000.000.000';
+	    $iClientIp = ip2long($sClientIp);
+	    $sClientIp = long2ip(($iClientIp & ~65535));
+	    return $sClientIp;
+	}
+
+	static public function deleteOutdatedConfirmations()
+	{
+		$sql = 'DELETE FROM `'.TABLE_PREFIX.'users` WHERE `confirm_timeout` BETWEEN 1 AND '.time();
+		WbDatabase::getInstance()->query($sql);
+	}
+
+	/**
+	 * AccountSignup::checkPassWordConfirmCode()
+	 *
+	 * @param string $sPassword
+	 * @param string $sConfirmCode
+	 * @return boolean
+	 */
+	static public function checkPassWordConfirmCode( $sPassword, $sConfirmCode )
+	{
+        $retVal = 0;
+		if( preg_match('/[0-9a-f]{32}/i', $sConfirmCode) ) {
+			$sql = 'SELECT `user_id` FROM `'.TABLE_PREFIX.'users` '
+			     . 'WHERE `password`=\''.md5($sPassword).'\' '
+			     .       'AND `confirm_code`=\''.$sConfirmCode.'\'';
+			if( $retVal = WbDatabase::getInstance()->get_one($sql)) {
+				return $retVal;
+			}
+		}
+		return $retVal;
+	}
+
+	/**
+	 * AccountSignup::GetBowserLanguage()
+	 *
+	 * @param string $defaultLanguage
+	 * @return string upper 2 digits
+	 */
+	static public function GetBowserLanguage( $defaultLanguage ='en' )
+	{
+		$sAutoLanguage = strtoupper($defaultLanguage); // default, if no information from client available
+		if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
+			if(preg_match('/([a-z]{2})(?:-[a-z]{2})*/i', strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']), $matches)) {
+				$sAutoLanguage = strtoupper($matches[1]);
+			}
+		}
+		return $sAutoLanguage;
+	}
+
+	static public function saveNewConfirmation($sConfirmCode) {
+		$sql = 'UPDATE `'.TABLE_PREFIX.'users` '
+		     . 'SET `active`=1, '
+//		     .     '`groups_id`='.DEFAULT_GROUP.', '
+		     .     '`confirm_code`=\'\', '
+		     .     '`confirm_timeout`=0 '
+		     . 'WHERE `confirm_code`=\''.$sConfirmCode.'\'';
+		WbDatabase::getInstance()->query($sql);
+	}
+
+	static public function spamSecure($sVal) {
+		return preg_replace('/(\n+|\r+|%0A|%0D)/i', '', $sVal);
+	}
+
+}

Property changes on: branches/2.8.x/wb/account/AccountSignup.php
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id Revision HeadURL
\ No newline at end of property
Index: branches/2.8.x/wb/account/confirm_mails.php
===================================================================
--- branches/2.8.x/wb/account/confirm_mails.php	(nonexistent)
+++ branches/2.8.x/wb/account/confirm_mails.php	(revision 1773)
@@ -0,0 +1,126 @@
+<?php
+/**
+ *
+ * @category        frontend
+ * @package         account
+ * @author          WebsiteBaker Project
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
+ * @link			http://www.websitebaker2.org/
+ * @license         http://www.gnu.org/licenses/gpl.html
+ * @platform        WebsiteBaker 2.8.x
+ * @requirements    PHP 5.2.2 and higher
+ * @version         $Id$
+ * @filesource		$HeadURL$
+ * @lastmodified    $Date$
+ *
+ */
+
+/* -------------------------------------------------------- */
+// Must include code to stop this file being accessed directly
+if(defined('WB_PATH') == false)
+{
+	die('<h2 style="color:red;margin:3em auto;text-align:center;">Cannot access this file directly</h2>');
+}
+/* -------------------------------------------------------- */
+if (!function_exists('ObfuscateIp')) {
+	function ObfuscateIp() {
+	    $sClientIp = (isset($_SERVER['REMOTE_ADDR']))
+	                         ? $_SERVER['REMOTE_ADDR'] : '000.000.000.000';
+//	    $iClientIp = ip2long($sClientIp);
+//	    $sClientIp = long2ip(($iClientIp & ~65535));
+	    return $sClientIp;
+	}
+}
+
+if (!function_exists('emailAdmin')) {
+	function emailAdmin() {
+		global $database,$admin;
+        $retval = $admin->get_email();
+        if($admin->get_user_id()!='1') {
+			$sql  = 'SELECT `email` FROM `'.TABLE_PREFIX.'users` ';
+			$sql .= 'WHERE `user_id`=\'1\' ';
+	        $retval = $database->get_one($sql);
+        }
+		return $retval;
+	}
+}
+
+// load module language file
+$mLang = ModLanguage::getInstance();
+//WB_MAILER settings
+$sServerEmail = (defined('SERVER_EMAIL') && SERVER_EMAIL != '' ? SERVER_EMAIL : emailAdmin());
+$sWebMailer   = (defined('WBMAILER_DEFAULT_SENDERNAME') && WBMAILER_DEFAULT_SENDERNAME != '' ? WBMAILER_DEFAULT_SENDERNAME : 'WebsiteBaker Mailer');
+
+/**
+ * now send user email, if activation don't failed'
+ *
+ *
+ */
+
+if(($email_to != '') && $bSaveRegistration ) {
+
+	$email_body = '';
+//	$get_ip = ObfuscateIp();
+	$get_ts = time();
+	$mail_message = $mLang->MESSAGE_SEND_CONFIRMED_ACTIVATION.$mLang->MESSAGE_SUCCESS_EMAIL_TEXT_GENERATED;
+	$search = array('{LOGIN_DISPLAY_NAME}', '{LOGIN_WEBSITE_TITLE}',  '{{webmaster_email}}');
+	$replace = array($sDisplayName, WEBSITE_TITLE, $sServerEmail);
+	$mail_message = str_replace($search, $replace, $mail_message);
+
+	$email_subject = $mLang->MESSAGE_SIGNUP_ACTIVATION;
+	$regex = "/[^a-z0-9ÃŸÃ¶Ã¤Ã¼Ã–Ã„Ãœ !?:;,.\/_\-=+@#$&\*\(\)]/im";
+	$recipient = preg_replace( $regex, "?", $sDisplayName );
+	$email_fromname = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "?", $recipient );
+	$email_body = preg_replace( "/(content-type:|bcc:|cc:|from:)/im", "", $mail_message );
+
+    $bSendRegistrationMailtoUser = $wb->mail($sServerEmail,$email_to,$email_subject,$email_body,$sWebMailer);
+}
+
+	$mail_replyto = $email_to;
+	$mail_replyName = $sDisplayName;
+	$mail_message = $MESSAGE['SIGNUP2_ADMIN_INFO'];
+	$email_subject = $MESSAGE['SIGNUP2_NEW_USER'];
+	$search = array('{LOGIN_EMAIL}','{LOGIN_ID}', '{SIGNUP_DATE}', '{LOGIN_NAME}', '{LOGIN_IP}');
+	$replace = array($email_to, $email_fromname.' ('.$iUserId.')', date(DATE_FORMAT.' '.TIME_FORMAT,$get_ts ), $sLoginName, $sLoginIp);
+	$mail_message = str_replace($search, $replace, $mail_message);
+	$email_body = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $mail_message );
+	$success_email_to = emailAdmin();
+
+	$bSendRegistrationMailtoAdmin = $wb->mail($sServerEmail,$success_email_to,$email_subject,$email_body,$mail_replyName,$mail_replyto);
+
+	$output = '';
+	msgQueue::clear();
+	// success registration output
+	$oTpl = new Template(dirname(__FILE__).'/htt','keep');
+	$oTpl->set_file('page', 'success.htt');
+	$oTpl->debug = false; // false, true
+	$oTpl->set_block('page', 'main_block', 'main');
+	// show messages, default block off
+	$oTpl->set_block('main_block', 'show_registration_block', 'message');
+	$oTpl->parse('message', '');
+	if( ($msg = msgQueue::getSuccess()) != '')
+	{
+		$output = $wb->format_message($msg, 'ok');
+		$oTpl->set_var('MESSAGE_VALUE',$output);
+		$oTpl->parse('message', 'show_registration_block', true);
+	}
+	$oTpl->set_var(array(
+			'BACK' => $TEXT['BACK'],
+			'HTTP_REFERER' => isset($_SESSION['HTTP_REFERER']) ? $_SESSION['HTTP_REFERER'] : WB_URL.'/',
+			)
+		);
+
+	if(CONFIRMED_REGISTRATION) {
+		$sMessage  = $mLang->MESSAGE_SIGNUP2_SUBJECT_NEW_USER.'<br /> ';
+		$sMessage .= $mLang->MESSAGE_ACTIVATED_NEW_USER;
+		$oTpl->set_var('MESSAGE',$sMessage);
+	} else {
+		$sMessage  = $mLang->MESSAGE_SIGNUP2_SUBJECT_NEW_USER.' ';
+		$sMessage .= $mLang->MESSAGE_SIGNUP_REGISTRATION;
+		$oTpl->set_var('MESSAGE',$sMessage);
+	}
+	//$oTpl->parse('message', 'message_block', true);
+	$oTpl->parse('main', 'main_block', false);
+	$output = $oTpl->finish($oTpl->parse('output', 'page'));
+	unset($oTpl);
+	print $output;

Property changes on: branches/2.8.x/wb/account/confirm_mails.php
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id Revision HeadURL
\ No newline at end of property
Index: branches/2.8.x/wb/account/save_signup.php
===================================================================
--- branches/2.8.x/wb/account/save_signup.php	(revision 1772)
+++ branches/2.8.x/wb/account/save_signup.php	(revision 1773)
@@ -19,11 +19,20 @@
 if(defined('WB_PATH') == false)
 {
 	// Stop this file being access directly
-		die('<head><title>Access denied</title></head><body><h2 style="color:red;margin:3em auto;text-align:center;">Cannot access this file directly</h2></body></html>');
+		die('<h2 style="color:red;margin:3em auto;text-align:center;">Cannot access this file directly</h2>');
 }
 /* -------------------------------------------------------- */
+$bDebugSignup = false;
+if (!function_exists('ObfuscateIp')) {
+	function ObfuscateIp() {
+	    $sClientIp = (isset($_SERVER['REMOTE_ADDR']))
+	                         ? $_SERVER['REMOTE_ADDR'] : '000.000.000.000';
+//	    $iClientIp = ip2long($sClientIp);
+//	    $sClientIp = long2ip(($iClientIp & ~65535));
+	    return $sClientIp;
+	}
+}
 
-
 if (!function_exists('emailAdmin')) {
 	function emailAdmin() {
 		global $database,$admin;
@@ -32,23 +41,67 @@
 			$sql  = 'SELECT `email` FROM `'.TABLE_PREFIX.'users` ';
 			$sql .= 'WHERE `user_id`=\'1\' ';
 	        $retval = $database->get_one($sql);
-
         }
 		return $retval;
 	}
 }
 
-$_SESSION['username'] = '';
-$_SESSION['DISPLAY_NAME'] = '';
-$_SESSION['email'] = '';
-$_SESSION['display_form'] = true;
+if (!function_exists('deleteOutdatedConfirmations')) {
+	function deleteOutdatedConfirmations() {
+		$sql = 'DELETE FROM `'.TABLE_PREFIX.'users` WHERE `confirm_timeout` BETWEEN 1 AND '.time();
+		WbDatabase::getInstance()->query($sql);
+	}
+}
 
-if(isset($_POST['action']) && $_POST['action']=='send') {
-	$_SESSION['username'] = strtolower(strip_tags($wb->get_post_escaped('username')));
+if (!function_exists('checkPassWordConfirmCode')) {
+	function checkPassWordConfirmCode( $sPassword, $sConfirmCode ) {
+		if( preg_match('/[0-9a-f]{32}/i', $sConfirmCode) ) {
+			$sql = 'SELECT `user_id` FROM `'.TABLE_PREFIX.'users` '
+			     . 'WHERE `password`=\''.md5($sPassword).'\' '
+			     .       'AND `confirm_code`=\''.$sConfirmCode.'\'';
+			if( WbDatabase::getInstance()->get_one($sql)) {
+				return true;
+			}
+		}
+		return false;
+	}
+}
+
+//$_SESSION['username'] = '';
+//$_SESSION['DISPLAY_NAME'] = '';
+//$_SESSION['email'] = '';
+//$_SESSION['display_form'] = true;
+
+if(isset($_POST['action']) && $_POST['action']=='send')
+{
+	$database = WbDatabase::getInstance();
+
+// add new fields in users
+	$table_name = TABLE_PREFIX.'users';
+	$field_name = 'confirm_code';
+	$description = "VARCHAR( 32 ) NOT NULL DEFAULT '' AFTER `password`";
+	if(!$database->field_exists($table_name,$field_name)) {
+		$database->field_add($table_name, $field_name, $description);
+	}
+	if($database->set_error()){
+		msgQueue::add($database->get_error());
+	}
+
+	$field_name = 'confirm_timeout';
+	$description = "INT NOT NULL DEFAULT '0' AFTER `confirm_code`";
+	if(!$database->field_exists($table_name,$field_name)) {
+		$database->field_add($table_name, $field_name, $description);
+	}
+	if($database->set_error()){
+		msgQueue::add($database->get_error());
+	}
+
+	$_SESSION['username'] = strtolower(strip_tags($wb->get_post_escaped('login_name')));
 	$_SESSION['DISPLAY_NAME'] = strip_tags($wb->get_post_escaped('display_name'));
 	$_SESSION['email'] = $wb->get_post('email');
+	$_SESSION['language'] = $wb->get_post('language');
 
-	$aErrorMsg = array();
+//	$aErrorMsg = array();
 
 	if($_SESSION['username'] != "")
 	{
@@ -55,20 +108,24 @@
 		// Check if username already exists
 		$sql = 'SELECT `user_id` FROM `'.TABLE_PREFIX.'users` WHERE `username` = \''.$_SESSION['username'].'\'';
 		if($database->get_one($sql)){
-			$aErrorMsg[] = $MESSAGE['USERS_USERNAME_TAKEN'];
+//			$aErrorMsg[] = $MESSAGE['USERS_USERNAME_TAKEN'];
+			msgQueue::add($MESSAGE['USERS_USERNAME_TAKEN']);
 			$_SESSION['username'] = '';
 		} else {
-			if(!preg_match('/^[a-z]{1}[a-z0-9_-]{3,}$/i', $_SESSION['username'])) {
-				$aErrorMsg[] = $MESSAGE['USERS_NAME_INVALID_CHARS'];
+			if(preg_match('/^[a-z]{1}[a-z0-9_-]{3,}$/i', $_SESSION['username'])==false) {
+//				$aErrorMsg[] = $MESSAGE['USERS_NAME_INVALID_CHARS'];
+				msgQueue::add($MESSAGE['USERS_NAME_INVALID_CHARS']);
 				$_SESSION['username'] = '';
 		 	}
 		}
 	} else {
-		$aErrorMsg[] = $MESSAGE['LOGIN_USERNAME_BLANK'];
+//		$aErrorMsg[] = $MESSAGE['LOGIN_USERNAME_BLANK'];
+		msgQueue::add($MESSAGE['LOGIN_USERNAME_BLANK']);
 	}
 
 	if($_SESSION['DISPLAY_NAME'] == "") {
-		$aErrorMsg[] = $MESSAGE['GENERIC_FILL_IN_ALL'];
+//		$aErrorMsg[] = $MESSAGE['GENERIC_FILL_IN_ALL'];
+		msgQueue::add($MESSAGE['GENERIC_FILL_IN_ALL']);
 	}
 
 	if($_SESSION['email'] != "") {
@@ -75,51 +132,72 @@
 		// Check if the email already exists
 		$sql = 'SELECT `user_id` FROM `'.TABLE_PREFIX.'users` WHERE `email` = \''.mysql_escape_string($_SESSION['email']).'\'';
 		if($database->get_one($sql)){
-			$aErrorMsg[] = $MESSAGE['USERS_EMAIL_TAKEN'];
+//			$aErrorMsg[] = $MESSAGE['USERS_EMAIL_TAKEN'];
+			msgQueue::add($MESSAGE['USERS_EMAIL_TAKEN']);
 			$_SESSION['email'] = '';
 		} else {
 			if(!$wb->validate_email($_SESSION['email'])){
-				$aErrorMsg[] = $MESSAGE['USERS_INVALID_EMAIL'];
+//				$aErrorMsg[] = $MESSAGE['USERS_INVALID_EMAIL'];
+				msgQueue::add($MESSAGE['USERS_INVALID_EMAIL']);
 				$_SESSION['email'] = '';
 			}
 		}
 	} else {
-		$aErrorMsg[] = $MESSAGE['SIGNUP_NO_EMAIL'];
+//		$aErrorMsg[] = $MESSAGE['SIGNUP_NO_EMAIL'];
+		msgQueue::add($MESSAGE['SIGNUP_NO_EMAIL']);
 	}
 
-	$sServerEmail = (defined('SERVER_EMAIL') && SERVER_EMAIL != '' ? SERVER_EMAIL : emailAdmin());
-	// Captcha
-	if(ENABLED_CAPTCHA) {
-		if(isset($_POST['captcha']) AND $_POST['captcha'] != ''){
-			// Check for a mismatch get email user_id
-			if(!isset($_POST['captcha']) OR !isset($_SESSION['captcha']) OR $_POST['captcha'] != $_SESSION['captcha']) {
-				$replace = array('SERVER_EMAIL' => emailAdmin() );
-				$aErrorMsg[] = replace_vars($MESSAGE['MOD_FORM_INCORRECT_CAPTCHA'], $replace);
+	if(CONFIRMED_REGISTRATION) {
+		$iMinPassLength = 6;
+// receive password vars and calculate needed action
+		$sNewPassword = $wb->get_post('new_password_1');
+		$sNewPassword = (is_null($sNewPassword) ? '' : $sNewPassword);
+		$sNewPasswordRetyped = $wb->get_post('new_password_2');
+		$sNewPasswordRetyped= (is_null($sNewPasswordRetyped) ? '' : $sNewPasswordRetyped);
+// validate new password
+		$sPwHashNew = false;
+		if($sNewPassword != '') {
+			if(strlen($sNewPassword) < $iMinPassLength) {
+//				$err_msg[] = $MESSAGE['USERS_PASSWORD_TOO_SHORT'];
+				msgQueue::add($MESSAGE['USERS_PASSWORD_TOO_SHORT']);
+			} else {
+				if($sNewPassword != $sNewPasswordRetyped) {
+//					$err_msg[] = $MESSAGE['USERS_PASSWORD_MISMATCH'];
+					msgQueue::add($MESSAGE['USERS_PASSWORD_MISMATCH']);
+				} else {
+					$pattern = '/[^'.$admin->password_chars.']/';
+					if (preg_match($pattern, $sNewPassword)) {
+//						$err_msg[] = $MESSAGE['PREFERENCES_INVALID_CHARS'];
+						msgQueue::add($MESSAGE['PREFERENCES_INVALID_CHARS']);
+					}else {
+						$sPwHashNew = md5($sNewPassword);
+					}
+				}
 			}
 		} else {
-			$replace = array('SERVER_EMAIL'=>emailAdmin() );
-			$aErrorMsg[] = replace_vars($MESSAGE['MOD_FORM_INCORRECT_CAPTCHA'],$replace );
+			msgQueue::add($MESSAGE['LOGIN_PASSWORD_BLANK']);
 		}
 
-	}
-	if(isset($_SESSION['captcha'])) { unset($_SESSION['captcha']); }
+	} else {
+		// Captcha
+		if(ENABLED_CAPTCHA) {
+			if(isset($_POST['captcha']) AND $_POST['captcha'] != '')
+			{
+				// Check for a mismatch get email user_id
+				if(!isset($_POST['captcha']) OR !isset($_SESSION['captcha']) OR $_POST['captcha'] != $_SESSION['captcha']) {
+					$replace = array('SERVER_EMAIL' => emailAdmin() );
+	//				$aErrorMsg[] = replace_vars($MESSAGE['MOD_FORM_INCORRECT_CAPTCHA'], $replace);
+					msgQueue::add(replace_vars($MESSAGE['INCORRECT_CAPTCHA'], $replace));
+				}
+			} else {
+				$replace = array('SERVER_EMAIL'=>emailAdmin() );
+	//			$aErrorMsg[] = replace_vars($MESSAGE['MOD_FORM_INCORRECT_CAPTCHA'],$replace );
+				msgQueue::add(replace_vars($MESSAGE['INCORRECT_CAPTCHA'],$replace ));
+			}
+		}
+		if(isset($_SESSION['captcha'])) { unset($_SESSION['captcha']); }
 
-	if (sizeof($aErrorMsg)) {
-		$aTmp = array_unshift ($aErrorMsg,'');
-		$sMessage = implode('<li>',$aErrorMsg);
-?><div style="width: 100%; overflow: hidden; border: 2px #990000 solid; background-color: #ffb9b9;">
-	<div style="width: 100%; padding: 5px;">
-<ul style="list-style-type: decimal-leading-zero;">
-	<?php print $sMessage ?></li>
-</ul>
-	</div>
-</div>
-
-<?php
-
-	} else {
-		// Generate a random password then update the database with it
-		$new_pass = '';
+		$sNewPassword = '';
 		$salt = "abchefghjkmnpqrstuvwxyz0123456789";
 		srand((double)microtime()*1000000);
 		$i = 0;
@@ -126,76 +204,78 @@
 		while ($i <= 7) {
 			$num = rand() % 33;
 			$tmp = substr($salt, $num, 1);
-			$new_pass = $new_pass . $tmp;
+			$sNewPassword = $sNewPassword . $tmp;
 			$i++;
 		}
-		$md5_password = md5($new_pass);
+		$sPwHashNew = md5($sNewPassword);
+	}
 
+	if( ($msg = msgQueue::getError()) != '') {
+// back to signup_form to show errors, otherwise save user and send mail
+	} else {
+		$get_ip = ObfuscateIp();
+		$get_ts = time();
 		$sLoginName = $_SESSION['username'];
-		$sDisplayName = $_SESSION['DISPLAY_NAME'];
+//		$sDisplayName = $_SESSION['DISPLAY_NAME'];
+		$sDisplayName = $wb->add_slashes($_SESSION['DISPLAY_NAME']);
 		$groups_id = FRONTEND_SIGNUP;
 		$email_to = $_SESSION['email'];
-		$get_ts = time();
-		$get_ip = $_SERVER['REMOTE_ADDR'];
 
-		$email_subject = $MESSAGE['SIGNUP2_SUBJECT_LOGIN_INFO'];
-		$search = array('{LOGIN_DISPLAY_NAME}', '{LOGIN_WEBSITE_TITLE}', '{LOGIN_NAME}', '{LOGIN_PASSWORD}');
-		$replace = array($sDisplayName, WEBSITE_TITLE, $sLoginName, $new_pass);
-		$mail_message = str_replace($search, $replace, $MESSAGE['SIGNUP2_BODY_LOGIN_INFO']);
+// Delete outdated confirmation IDs
+		deleteOutdatedConfirmations();
 
-		$email_body = '';
-		$recipient = preg_replace( "/[^a-z0-9 !?:;,.\/_\-=+@#$&\*\(\)]/im", "", $sDisplayName );
-		$email_fromname = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $recipient );
-		$email_body = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $mail_message );
+// Create confirmation ID and Timestamp
+		$sTimeOut = 0; // now + 24hours
+		$sConfirmationId = '';
 
-		if($email_to != '') {
-// 	if($wb->mail(SERVER_EMAIL,$mail_to,$email_subject,$email_body)) { }
-			$success = false;
-			if(	$wb->mail($sServerEmail,$email_to,$email_subject,$email_body,WB_MAILER) ) {
-				$sql  = 'SELECT `user_id` FROM `'.TABLE_PREFIX.'users` ';
-				$sql .= 'ORDER BY `user_id` DESC ';
-		        $user_id = $database->get_one($sql)+1;
+		if(CONFIRMED_REGISTRATION) {
+			$sTimeOut = (string)(time() + 86400); // now + 24hours
+			$sConfirmationId = md5(md5($sLoginName.$sTimeOut).$sTimeOut);
+			$sConfirmedLink = WB_URL.'/account/confirm.php?id='.$sConfirmationId;
+            $sConfirmedLink = '<a href="'.$sConfirmedLink.'">'.$sConfirmedLink.'</a>';
+		}
 
-				$email_subject = $MESSAGE['SIGNUP2_NEW_USER'];
-				$search = array('{LOGIN_EMAIL}','{LOGIN_ID}', '{SIGNUP_DATE}', '{LOGIN_NAME}', '{LOGIN_IP}');
-				$replace = array($email_to, $email_fromname.' ('.$user_id.')', date(DATE_FORMAT.' '.TIME_FORMAT,$get_ts ), $sLoginName, $get_ip);
-				$mail_message = str_replace($search, $replace, $MESSAGE['SIGNUP2_ADMIN_INFO']);
-				$email_body = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $mail_message );
-				$success_email_to = emailAdmin();
- 				$success = $wb->mail($sServerEmail,$success_email_to,$email_subject,$email_body,$email_fromname);
+// Save new user
+		$bSaveRegistration = true;
+
+		$sql  = 'INSERT INTO `'.TABLE_PREFIX.'users` SET ';
+		$sql .= '`group_id` = \''.$groups_id.'\', ';
+		$sql .= '`groups_id` = \''.$groups_id.'\', ';
+		$sql .= '`active` = \''.(CONFIRMED_REGISTRATION ? '0' : '1').'\', ';
+		$sql .= '`username` = \''.$sLoginName.'\', ';
+		$sql .= '`password` = \''.$sPwHashNew.'\', ';
+		$sql .= '`confirm_code` = \''.$sConfirmationId.'\', ';
+		$sql .= '`confirm_timeout` = \''.$sTimeOut.'\', ';
+		$sql .= '`display_name` = \''.$sDisplayName.'\', ';
+		$sql .= '`email` = \''.$email_to.'\', ';
+		$sql .= '`language` = \''.$_SESSION['language'].'\', ';
+		$sql .= '`login_when` = \''.$get_ts.'\', ';
+		$sql .= '`login_ip` = \''.$get_ip.'\' ';
+
+		if(!$database->query($sql))
+		{
+// cancel and break script
+			$bSaveRegistration = false;
+			$_SESSION['display_form'] = false;
+			unset($_SESSION['username']);
+			unset($_SESSION['DISPLAY_NAME']);
+			unset($_SESSION['email']);
+			unset($_POST);
+			if($database->set_error()){
+				msgQueue::add($database->get_error());
 			}
-		}
+		} else {
+			msgQueue::add($MESSAGE['SIGNUP_NEW_USER'],true);
 
-		if($success) {
+			include(dirname(__FILE__).'/signup_mails.php');
 
-			$sql  = 'INSERT INTO `'.TABLE_PREFIX.'users` SET ';
-			$sql .= 'group_id = \''.$groups_id.'\', ';
-			$sql .= 'groups_id = \''.$groups_id.'\', ';
-			$sql .= 'active = \'1\', ';
-			$sql .= 'username = \''.$sLoginName.'\', ';
-			$sql .= 'password = \''.$md5_password.'\', ';
-			$sql .= 'display_name = \''.$sDisplayName.'\', ';
-			$sql .= 'email = \''.$email_to.'\', ';
-			$sql .= 'login_when = \''.$get_ts.'\', ';
-			$sql .= 'login_ip = \''.$get_ip.'\' ';
-			if($database->query($sql)) {
+			if($bSaveRegistration && $bSendRegistrationMailtoUser) {
+			// send success message to screen, no signup form
 				$_SESSION['display_form'] = false;
-				unset($_SESSION['username']);
-				unset($_SESSION['DISPLAY_NAME']);
-				unset($_SESSION['email']);
-				unset($_POST);
-// send msgbox
-?><div style="width: 100%; overflow: hidden; border: 2px #336600 solid; background-color: #ccff99;">
-	<div style="width: 100%; padding: 5px; text-align:center;">
-		<?php print $MESSAGE['SIGNUP2_SUBJECT_NEW_USER'] ?>
-		<div style="margin: 5px auto;"><br />
-		<button type="button" value="cancel" onClick="javascript: window.location = '<?php print $_SESSION['HTTP_REFERER'] ?>';"><?php print $TEXT['BACK'] ?></button>
-		</div>
-	</div>
-</div>
-<?php
 			}
-		}
+
+		} // end success $bSaveRegistration
 	}
-}
-
+} // end $_POST['action']
+// if page_id lost
+$page_id = isset($_SESSION['PAGE_ID']) ? $_SESSION['PAGE_ID'] : 0;
Index: branches/2.8.x/wb/account/preferences_form.php
===================================================================
--- branches/2.8.x/wb/account/preferences_form.php	(revision 1772)
+++ branches/2.8.x/wb/account/preferences_form.php	(revision 1773)
@@ -37,9 +37,11 @@
 		require_once(WB_PATH .'/account/languages/' .LANGUAGE .'.php');
 	}
 	require_once(WB_PATH.'/framework/functions-utf8.php');
-	echo '<style type="text/css">';
-	include(WB_PATH .'/account/frontend.css');
-	echo "\n</style>\n";
+
+//	echo '<style type="text/css">';
+//	include(WB_PATH .'/account/frontend.css');
+//	echo "\n</style>\n";
+
 	$user_time = true;
 	require(ADMIN_PATH.'/interface/timezones.php');
 	require(ADMIN_PATH.'/interface/date_formats.php');
@@ -46,7 +48,7 @@
 	require(ADMIN_PATH.'/interface/time_formats.php');
 	$error = array();
 	$success = array();
-	$template = new Template(WB_PATH .'/account','keep');
+	$template = new Template(WB_PATH .'/account/htt','keep');
 
 	switch($wb->get_post('action')):
 		case 'details':
@@ -67,7 +69,7 @@
 	$template->set_file('page', 'preferences.htt');
 	$template->set_block('page', 'main_block', 'main');
 // get existing values from database
-	$sql = "SELECT display_name,email FROM ".TABLE_PREFIX."users WHERE user_id = '".$wb->get_user_id()."'";
+	$sql = "SELECT `display_name`,`email` FROM ".TABLE_PREFIX."users WHERE `user_id` = '".$wb->get_user_id()."'";
 	$rowset = $database->query($sql);
 	if($database->is_error()) $error[] = $database->get_error();
 	$row = $rowset->fetchRow();
@@ -145,45 +147,43 @@
 	}
 // Insert language headings
 	$template->set_var(array(
-								'HEADING_MY_SETTINGS' => $HEADING['MY_SETTINGS'],
-								'HEADING_MY_EMAIL'    => $HEADING['MY_EMAIL'],
-								'HEADING_MY_PASSWORD' => $HEADING['MY_PASSWORD']
-								)
-						);
+			'HEADING_MY_SETTINGS' => $HEADING['MY_SETTINGS'],
+			'HEADING_MY_EMAIL'    => $HEADING['MY_EMAIL'],
+			'HEADING_MY_PASSWORD' => $HEADING['MY_PASSWORD']
+			)
+	);
 // Insert language text and messages
 	$template->set_var(array(
-								'HTTP_REFERER' => $_SESSION['HTTP_REFERER'],
-								'TEXT_SAVE'	=> $TEXT['SAVE'],
-								'TEXT_RESET' => $TEXT['RESET'],
-								'TEXT_CANCEL' => $TEXT['CANCEL'],
-								'TEXT_DISPLAY_NAME'	=> $TEXT['DISPLAY_NAME'],
-								'TEXT_EMAIL' => $TEXT['EMAIL'],
-								'TEXT_LANGUAGE' => $TEXT['LANGUAGE'],
-								'TEXT_TIMEZONE' => $TEXT['TIMEZONE'],
-								'TEXT_DATE_FORMAT' => $TEXT['DATE_FORMAT'],
-								'TEXT_TIME_FORMAT' => $TEXT['TIME_FORMAT'],
-								'TEXT_CURRENT_PASSWORD' => $TEXT['CURRENT_PASSWORD'],
-								'TEXT_NEW_PASSWORD' => $TEXT['NEW_PASSWORD'],
-								'TEXT_RETYPE_NEW_PASSWORD' => $TEXT['RETYPE_NEW_PASSWORD']
-								)
-						);
+			'HTTP_REFERER' => $_SESSION['HTTP_REFERER'],
+			'TEXT_SAVE'	=> $TEXT['SAVE'],
+			'TEXT_RESET' => $TEXT['RESET'],
+			'TEXT_CANCEL' => $TEXT['CANCEL'],
+			'TEXT_DISPLAY_NAME'	=> $TEXT['DISPLAY_NAME'],
+			'TEXT_EMAIL' => $TEXT['EMAIL'],
+			'TEXT_LANGUAGE' => $TEXT['LANGUAGE'],
+			'TEXT_TIMEZONE' => $TEXT['TIMEZONE'],
+			'TEXT_DATE_FORMAT' => $TEXT['DATE_FORMAT'],
+			'TEXT_TIME_FORMAT' => $TEXT['TIME_FORMAT'],
+			'TEXT_CURRENT_PASSWORD' => $TEXT['CURRENT_PASSWORD'],
+			'TEXT_NEW_PASSWORD' => $TEXT['NEW_PASSWORD'],
+			'TEXT_RETYPE_NEW_PASSWORD' => $TEXT['RETYPE_NEW_PASSWORD']
+			)
+	);
 
 // Insert module releated language text and messages
 	$template->set_var(array(
-								'MOD_PREFERENCE_PLEASE_SELECT'	=> $MOD_PREFERENCE['PLEASE_SELECT'],
-								'MOD_PREFERENCE_SAVE_SETTINGS'	=> $MOD_PREFERENCE['SAVE_SETTINGS'],
-								'MOD_PREFERENCE_SAVE_EMAIL'			=> $MOD_PREFERENCE['SAVE_EMAIL'],
-								'MOD_PREFERENCE_SAVE_PASSWORD'	=> $MOD_PREFERENCE['SAVE_PASSWORD'],
-								)
-						);
+			'MOD_PREFERENCE_PLEASE_SELECT'  => $MOD_PREFERENCE['PLEASE_SELECT'],
+			'MOD_PREFERENCE_SAVE_SETTINGS'  => $MOD_PREFERENCE['SAVE_SETTINGS'],
+			'MOD_PREFERENCE_SAVE_EMAIL'     => $MOD_PREFERENCE['SAVE_EMAIL'],
+			'MOD_PREFERENCE_SAVE_PASSWORD'  => $MOD_PREFERENCE['SAVE_PASSWORD'],
+			)
+	);
 // Insert error and/or success messages
 	$template->set_block('main_block', 'error_block', 'error_list');
 	$template->set_var('ERROR_VALUE', '');
 	if(sizeof($error)>0){
-		foreach($error AS $value){
-			$template->set_var('ERROR_VALUE', $value);
-			$template->parse('error_list', 'error_block', true);
-		}
+		$template->set_var('ERROR_VALUE', $wb->format_message(implode('<br />',$error),'error'));
+		$template->parse('error_list', 'error_block', true);
 	} else {
 		$template->parse('error_list', '');
 	}
@@ -191,10 +191,8 @@
 	$template->set_block('main_block', 'success_block', 'success_list');
 	$template->set_var('SUCCESS_VALUE', '');
 	if(sizeof($success)!=0){
-		foreach($success AS $value){
-			$template->set_var('SUCCESS_VALUE', $value);
+			$template->set_var('SUCCESS_VALUE', $wb->format_message(implode('<br />',$success),'ok'));
 			$template->parse('success_list', 'success_block', true);
-		}
 	} else {
 		$template->parse('success_list', '');
 	}
Index: branches/2.8.x/wb/account/details.php
===================================================================
--- branches/2.8.x/wb/account/details.php	(revision 1772)
+++ branches/2.8.x/wb/account/details.php	(revision 1773)
@@ -16,11 +16,17 @@
  *
  */
 
-// Must include code to stop this file being access directly
-if(defined('WB_PATH') == false) { die("Cannot access this file directly"); }
+/* -------------------------------------------------------- */
+// Must include code to stop this file being accessed directly
+if(defined('WB_PATH') == false)
+{
+	// Stop this file being access directly
+		die('<h2 style="color:red;margin:3em auto;text-align:center;">Cannot access this file directly</h2>');
+}
+/* -------------------------------------------------------- */
 
 // Get entered values
-	$display_name = $wb->add_slashes(strip_tags($admin->get_post('display_name')));
+	$display_name = $wb->add_slashes(strip_tags($wb->get_post('display_name')));
 	$language = $wb->get_post('language');
 	$timezone = $wb->get_post('timezone')*60*60;
 	$date_format = $wb->get_post('date_format');
Index: branches/2.8.x/wb/account/email.php
===================================================================
--- branches/2.8.x/wb/account/email.php	(revision 1772)
+++ branches/2.8.x/wb/account/email.php	(revision 1773)
@@ -16,8 +16,14 @@
  *
  */
 
-// Must include code to stop this file being access directly
-if(defined('WB_PATH') == false) { die("Cannot access this file directly"); }
+/* -------------------------------------------------------- */
+// Must include code to stop this file being accessed directly
+if(defined('WB_PATH') == false)
+{
+	// Stop this file being access directly
+		die('<h2 style="color:red;margin:3em auto;text-align:center;">Cannot access this file directly</h2>');
+}
+/* -------------------------------------------------------- */
 
 // Get entered values
 	$password = $wb->get_post('current_password');
Index: branches/2.8.x/wb/account/signup_form.php
===================================================================
--- branches/2.8.x/wb/account/signup_form.php	(revision 1772)
+++ branches/2.8.x/wb/account/signup_form.php	(revision 1773)
@@ -3,9 +3,8 @@
  *
  * @category        frontend
  * @package         account
- * @author          WebsiteBaker Project
- * @copyright       2004-2009, Ryan Djurovich
- * @copyright       2009-2011, Website Baker Org. e.V.
+ * @author          Ryan Djurovich, WebsiteBaker Project
+ * @copyright       2009-2012, WebsiteBaker Org. e.V.
  * @link			http://www.websitebaker2.org/
  * @license         http://www.gnu.org/licenses/gpl.html
  * @platform        WebsiteBaker 2.8.x
@@ -16,8 +15,15 @@
  *
  */
 
-// Must include code to stop this file being access directly
-if(defined('WB_PATH') == false) { die("Cannot access this file directly"); }
+/* -------------------------------------------------------- */
+// Must include code to stop this file being accessed directly
+if(defined('WB_PATH') == false)
+{
+		die('<h2 style="color:red;margin:3em auto;text-align:center;">Cannot access this file directly</h2>');
+}
+/* -------------------------------------------------------- */
+//print '<pre style="text-align: left;"><strong>function '.__FUNCTION__.'( '.''.' );</strong>  basename: '.basename(__FILE__).'  line: '.__LINE__.' -> <br />';
+//print_r( $_SESSION['HTTP_REFERER'] ); print '</pre>';  die();// flush ();sleep(10);
 
 // load module language file
 $lang = (dirname(__FILE__)) . '/languages/' . LANGUAGE . '.php';
@@ -24,79 +30,191 @@
 require_once(!file_exists($lang) ? (dirname(__FILE__)) . '/languages/EN.php' : $lang );
 
 require_once(WB_PATH.'/include/captcha/captcha.php');
-$wb = new wb('Start', 'start', false, false);
 
 include_once (WB_PATH.'/framework/functions.php');
-require(WB_PATH.'/account/save_signup.php');
-if($_SESSION['display_form']){
-?><div style="margin: 1em auto;">
-	<button type="button" value="cancel" onClick="javascript: window.location = '<?php print $_SESSION['HTTP_REFERER'] ?>';"><?php print $TEXT['CANCEL'] ?></button>
-</div>
-<h1>&nbsp;<?php echo $TEXT['SIGNUP']; ?></h1>
 
-<form name="user" action="<?php echo WB_URL.'/account/signup.php'; ?>" method="post">
-	<?php echo $admin->getFTAN(); ?>
-	<?php if(ENABLED_ASP) { // add some honeypot-fields
-	?>
-	<input type="hidden" name="submitted_when" value="<?php $t=time(); echo $t; $_SESSION['submitted_when']=$t; ?>" />
-	<input type="hidden" name="action" value="send" />
-    <div style="display:none;">
-	<p class="nixhier">
-	email-address:
-	<label for="email-address">Leave this field email-address blank:</label>
-	<input id="email-address" name="email-address" size="60" value="" /><br />
-	username (id):
-	<label for="name">Leave this field name blank:</label>
-	<input id="name" name="name" size="60" value="" /><br />
-	Full Name:
-	<label for="full_name">Leave this field full_name blank:</label>
-	<input id="full_name" name="full_name" size="60" value="" /><br />
-	</p>
-	<?php }
-	?>
-    </div>
-<table summary="" cellpadding="5" cellspacing="0" border="0" width="90%">
-<tr>
-	<td width="180"><?php echo $TEXT['USERNAME']; ?>:</td>
-	<td class="value_input">
-		<input type="text" name="username" value="<?php print $_SESSION['username'] ?>" maxlength="30" style="width:300px;"/>
-	</td>
-</tr>
-<tr>
-	<td><?php echo $TEXT['DISPLAY_NAME']; ?> (<?php echo $TEXT['FULL_NAME']; ?>):</td>
-	<td class="value_input">
-		<input type="text" name="display_name" value="<?php print $_SESSION['DISPLAY_NAME'] ?>" maxlength="255" style="width:300px;" />
-	</td>
-</tr>
-<tr>
-	<td><?php echo $TEXT['EMAIL']; ?>:</td>
-	<td class="value_input">
-		<input type="text" name="email" value="<?php print $_SESSION['email'] ?>" maxlength="255" style="width:300px;"/>
-	</td>
-</tr>
-<?php
-// Captcha
-if(ENABLED_CAPTCHA) {
-	?><tr>
-		<td class="field_title"><?php echo $TEXT['VERIFICATION']; ?>:</td>
-		<td><?php call_captcha(); ?></td>
-		</tr>
-	<?php
+$mLang = ModLanguage::getInstance();
+$mLang->setLanguage(dirname(__FILE__).'/languages/', LANGUAGE, DEFAULT_LANGUAGE);
+
+//echo '<style type="text/css">';
+//include(WB_PATH .'/account/frontend.css');
+//echo "\n</style>\n";
+
+if(isset($_POST['action']) && $_POST['action']=='send') {
+	require(dirname(__FILE__).'/save_signup.php');
+} else {
+	$output = '';
+	msgQueue::clear();
+	unset($_SESSION['username']);
+	unset($_SESSION['language']);
+	unset($_SESSION['DISPLAY_NAME']);
+	unset($_SESSION['email']);
 }
-?>
-<tr>
-	<td>&nbsp;</td>
-	<td>
-		<input type="submit" name="submit" value="<?php echo $TEXT['SIGNUP']; ?>" />
-		<input type="reset" name="reset" value="<?php echo $TEXT['RESET']; ?>" />
-	</td>
-</tr>
-</table>
 
-</form>
+if($_SESSION['display_form']){
 
-<br />
-&nbsp; 
-<?php
+// set template file and assign module and template block
+	$oTpl = new Template(dirname(__FILE__).'/htt','keep');
+	$oTpl->set_file('page', 'signup.htt');
+	$oTpl->debug = false; // false, true
+	$oTpl->set_block('page', 'main_block', 'main');
+// generell vars
+	$oTpl->set_var(array(
+		'FTAN' => $wb->getFTAN(),
+		'ACTION_URL' => WB_URL.'/account/signup.php',
+		'WB_URL' => WB_URL,
+		'THEME_URL' => THEME_URL,
+		'HTTP_REFERER' => $_SESSION['HTTP_REFERER'],
+		'MESSAGE_VALUE' => '',
+		'ERROR_VALUE' => '',
+		'HEADING_SIGNUP' => $TEXT['SIGNUP'],
+		'TEXT_LANGUAGE' => $TEXT['LANGUAGE'],
+		'TEXT_SIGNUP' => $TEXT['SIGNUP'],
+		'TEXT_RESET' => $TEXT['RESET'],
+		'TEXT_CANCEL' => $TEXT['CANCEL'],
+		)
+	);
 
+	$sSelected = ' selected="selected"';
+	$checked   = ' checked="checked"';
+// show messages, default block off
+	$oTpl->set_block('main_block', 'message_block', 'message');
+	$oTpl->parse('message', '');
+	if( ($msg = msgQueue::getError()) != '')
+	{
+		$output = $wb->format_message($msg, 'error');
+		$oTpl->set_var('MESSAGE_VALUE',$output);
+		$oTpl->parse('message', 'message_block', true);
+	}
+	$oTpl->set_var('MESSAGE','');
+
+// show captcha
+	$oTpl->set_block('main_block', 'asp_block', 'asp');
+	if(ENABLED_ASP) {
+		$oTpl->set_var('DISPLAY_ASP','nixhier');
+		$oTpl->parse('asp', 'asp_block', true);
+	} else {
+		$oTpl->parse('asp', '', true);
+	}
+
+// login label vars
+	$oTpl->set_var(array(
+		'TEXT_INFO' => $SFS_TEXT['INFO'],
+		'TEXT_USERNAME' => $TEXT['USERNAME'],
+		'TEXT_DISPLAY_NAME' => $TEXT['DISPLAY_NAME'],
+		'TEXT_EMAIL' => $TEXT['EMAIL'],
+		)
+	);
+
+// set data vars stored in session if validation failed
+	$iTime = time();
+	$_SESSION['submitted_when'] = $iTime;
+	$oTpl->set_var(array(
+		'SET_TIME' => $iTime,
+		'DISPLAY_USER' => isset($_SESSION['username']) ? $_SESSION['username'] : '',
+		'DISPLAY_NAME' => isset($_SESSION['DISPLAY_NAME']) ? $_SESSION['DISPLAY_NAME'] : '',
+		'EMAIL' => isset($_SESSION['email']) ? $_SESSION['email'] : '',
+		)
+	);
+
+// detect client language
+	$oTpl->set_block('main_block', 'language_list_block', 'language_list');
+	$sAutoLanguage = DEFAULT_LANGUAGE; // default, if no information from client available
+	if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
+		if(preg_match('/([a-z]{2})(?:-[a-z]{2})*/i', strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']), $matches)) {
+			$sAutoLanguage = strtoupper($matches[1]);
+		}
+	}
+	$sAutoLanguage = isset($_SESSION['language']) ? $_SESSION['language'] : $sAutoLanguage;
+	// Insert language values
+	$sql  = 'SELECT `name`, `directory` FROM `'.TABLE_PREFIX.'addons` ';
+	$sql .= 'WHERE `type` = \'language\' ';
+//	$sql .= 'AND `function` != \'theme\' ';
+	$sql .= 'ORDER BY `directory`';
+	if( ($result = $database->query($sql)) && ($result->numRows() > 0) )
+//	$result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'language' ORDER BY directory");
+//	if($result->numRows() > 0)
+	{
+		while($addon = $result->fetchRow())
+		{
+	        $langIcons = (empty($addon['directory'])) ? 'none' : strtolower($addon['directory']);
+
+			$oTpl->set_var('CODE',        $addon['directory']);
+			$oTpl->set_var('NAME',        $addon['name']);
+			$oTpl->set_var('FLAG',        THEME_URL.'/images/flags/'.$langIcons);
+			$oTpl->set_var('SELECTED',    ($sAutoLanguage == $addon['directory'] ? $sSelected : '') );
+			$oTpl->parse('language_list', 'language_list_block', true);
+		}
+	}
+
+// if type == confirmed_registration mail show password block, otherwise old login with captcha
+	$oTpl->set_block('main_block', 'password_block', 'password');
+	$oTpl->set_block('main_block', 'captcha_block', 'captcha');
+	if(CONFIRMED_REGISTRATION) {
+		$oTpl->parse('captcha', '', true);
+		$oTpl->set_var(array(
+				'TEXT_NEW_PASSWORD' => $TEXT['NEW_PASSWORD'],
+				'TEXT_RETYPE_NEW_PASSWORD' => $TEXT['RETYPE_NEW_PASSWORD'],
+				'HELP_SIGNUP_REMEMBER_PASSWORD' => $HELP['SIGNUP_REMEMBER_PASSWORD'],
+				)
+			);
+		$oTpl->parse('password', 'password_block',true);
+	} else {
+		$oTpl->parse('password', '');
+		if(ENABLED_CAPTCHA) {
+			ob_start();
+			call_captcha();
+			$captcha = ob_get_clean();
+			$oTpl->set_var(array(
+					'TEXT_VERIFICATION' => $TEXT['VERIFICATION'],
+					'CAPTCHA' => $captcha,
+					)
+				);
+			$oTpl->parse('captcha', 'captcha_block', true);
+		} else {
+			$oTpl->parse('captcha', '', true);
+		}
+	}
+
+	// Parse template object
+	$oTpl->parse('main', 'main_block', false);
+	$output = $oTpl->finish($oTpl->parse('output', 'page'));
+	unset($oTpl);
+	print $output;
+	$output = '';
+} else {
+	// success registration output
+	$oTpl = new Template(dirname(__FILE__).'/htt','keep');
+	$oTpl->set_file('page', 'success.htt');
+	$oTpl->debug = false; // false, true
+	$oTpl->set_block('page', 'main_block', 'main');
+	// show messages, default block off
+	$oTpl->set_block('main_block', 'show_registration_block', 'message');
+	$oTpl->parse('message', '');
+	if( ($msg = msgQueue::getSuccess()) != '')
+	{
+		$output = $wb->format_message($msg, 'ok');
+		$oTpl->set_var('MESSAGE_VALUE',$output);
+		$oTpl->parse('message', 'show_registration_block', true);
+	}
+	$oTpl->set_var(array(
+			'BACK' => $TEXT['BACK'],
+			'HTTP_REFERER' => isset($_SESSION['HTTP_REFERER']) ? $_SESSION['HTTP_REFERER'] : WB_URL,
+			)
+		);
+
+	if(CONFIRMED_REGISTRATION) {
+		$sMessage  = $MESSAGE['SIGNUP2_SUBJECT_NEW_USER'].' ';
+		$sMessage .= $MESSAGE['SIGNUP_CONFIRMED_REGISTRATION'];
+		$oTpl->set_var('MESSAGE',$sMessage);
+	} else {
+		$sMessage  = $MESSAGE['SIGNUP2_SUBJECT_NEW_USER'].' ';
+		$sMessage .= $MESSAGE['SIGNUP_REGISTRATION'];
+		$oTpl->set_var('MESSAGE',$sMessage);
+	}
+	//$oTpl->parse('message', 'message_block', true);
+	$oTpl->parse('main', 'main_block', false);
+	$output = $oTpl->finish($oTpl->parse('output', 'page'));
+	unset($oTpl);
+	print $output;
 }
Index: branches/2.8.x/wb/templates/round/template.css
===================================================================
--- branches/2.8.x/wb/templates/round/template.css	(revision 1772)
+++ branches/2.8.x/wb/templates/round/template.css	(revision 1773)
@@ -145,4 +145,35 @@
 	color: #FFF;
 	vertical-align: middle;
 	text-align: center;
-}
\ No newline at end of file
+}
+/* here you can style the account templates */
+.note { background :#eeffee; border :0.2em #448844 solid; color :#004400; margin-bottom :1em; padding :0.63em; }
+.warning { background :#ffeeee; border :1px #884444 solid; color :#440000; margin-bottom :1em; padding :1.5em; }
+div.account { width :80%; margin :1em auto; }
+div.account div.signup, 
+div.account div.details, 
+div.account div.email, 
+div.account div.password { background : transparent none repeat-x top; width :100%; overflow :hidden; border :0px solid #cccccc; margin-bottom :1em; border-radius :10px; -khtml-border-radius :10px; -webkit-border-radius :10px; -moz-border-radius :10px; }
+div.account h3 { width :100%; color :#00016f; padding :5px; margin-top :3px; border-bottom :1px solid #000; }
+div.account table { vertical-align :0px; table-layout :auti; width :100%; margin :10px auto; }
+div.account table tr { width :100%; }
+div.account table td { width :30%; }
+div.account table td.button { width :100%; text-align :center; }
+div.account table td.button button { text-align :center; padding :2px; }
+div.account table td.input { width :50%; }
+.nixhier { display :none; }
+.center { text-align :center; }
+div.account table td.input input { width :90%; }
+/* DIV-mbox to show selector or simply content only ************************* */
+div.mbox { padding :0.6em; margin :1em auto; background-color : #f3f5f8; color :#330033; font-size :1.1em; display :block; }
+/* extension for mbox to show additional icons on left side ***************** */
+div.mbox-icon { background-repeat :no-repeat; background-image :url(../images/info_50.png); background-position :15px 50%; padding :15px; min-height :25px; }
+	div.mbox-icon div { margin-left :70px; border-left :3px outset; padding-left :5px; }
+div.mbox-icon16 { background-repeat :no-repeat; background-image :url(../images/info_16.png); background-position :5px 50%; padding :5px; min-height :10px; }
+	div.mbox-icon16 div { margin-left :30px; border-left :4px outset; padding-left :5px; }
+/* coloring of the mbox and other boxes also ******************************** */
+div.box-ok { border-color :#008000; color :#008000; }
+div.box-error { border-color :#ff0000; color :#ff0000; }
+div.box-info { border-color :#bb7a00; color :#003ff2; }
+div.box-warning { border-color :#ffa500; color :#ffa500; }
+/* Border attributes for mbox and other elements also *********************** */
Index: branches/2.8.x/wb/templates/wb_theme/images/info_50.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/templates/wb_theme/images/info_50.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/templates/wb_theme/images/info_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/templates/wb_theme/images/info_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/templates/argos_theme/images/info_50.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/templates/argos_theme/images/info_50.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/templates/argos_theme/images/info_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/templates/argos_theme/images/info_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/templates/argos_theme/icons/error_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/templates/argos_theme/icons/error_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/2.8.x/wb/templates/argos_theme/icons/ok_16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: branches/2.8.x/wb/templates/argos_theme/icons/ok_16.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
