Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Custom Remaster 2006 Habbo Layout [release][work-in-progress]

Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
Here's a little more information about the maintenance page:

Everyone will still be able to access:

Login/logout pages (incase you have permission to access the website)
Contact us page
Captcha (incase you are a spam bot)

Plugin:

PHP:
<?php<?phpif(!defined('IN_MYBB'))
{
 die('This file cannot be accessed directly.');
}$plugins->add_hook('global_start', 'maintenance');function maintenance_info()
{
 return array(
  'name'   => '(holo) Force Maintenance',
  'description' => 'Forces the user to go on maintenance when board is closed',
  'website'  => '',
  'author'  => '',
  'authorsite' => '',
  'version'  => '1.0',
  'compatibility' => '18*',
  'codename'  => 'maintenance'
 );
}function maintenance_activate()
{
 global $db; $templatearray = array(
 'maintenance' => '<html>
 <head>
  <title>Maintenance</title>
  <meta http-equiv="Content-Type" content="text/html; charset="{$charset}" />
  <link href="web-gallery/maintenance/style.css" type="text/css" rel="stylesheet" />
 </head>
 <body>
  <div id="page-container">
   <div id="header-container"></div>
   <div id="maintenance-container">
    <div id="content-container">
     <div id="inner-container">
      <div id="left_col">
       <div class="bubble">
        <div class="bubble-body">
         <img src="web-gallery/maintenance/alert_triangle.gif" align="left" class="triangle" />
         <strong>I think you hit the wrong switch Greggers! {$mybb->settings[\'bbname\']} just vanished!</strong>
         <br class="clear" />
        </div>
       </div>
       <div class="bubble-bottom">
        <div class="bubble-bottom-body">
         <img src="web-gallery/maintenance/bubble_tail_left.gif" />
        </div>
       </div>
       <img src="web-gallery/maintenance/frank_habbo_down.gif" />
      </div>
      <div id="right_col">
       <div class="bubble">
        <div class="bubble-body">
         {$reason}
         <br class="clear" />
        </div>
       </div>
       <div class="bubble-bottom">
        <div class="bubble-bottom-body">
         <img src="web-gallery/maintenance/bubble_tail_left.gif" />
        </div>
       </div>
       <img src="web-gallery/maintenance/workman_habbo_down.gif" />
      </div>
     </div>
    </div>
   </div>
   <div id="footer-container"></div>
  </div>
  
<script type="text/javascript">
this.blankwin = function(){
        var dlists = new Array();  
 dlists[0] = 'forum.ragezone.com'; 

	var hostname = window.location.hostname;
	hostname = hostname.replace("www.","").toLowerCase();
	var a = document.getElementsByTagName("a");	
	this.check = function(obj){
		var href = obj.href.toLowerCase();
                var dbopcount = 0;
                if (href.indexOf("http://")!=-1)
                {
                   for (jdi = 0; jdi <= dlists.length; jdi++)
                   {
                      if (href.indexOf(dlists[jdi]) == -1)
                      {
                         //alert("NO MATCH " + dlists[jdi] + " " + href);
                         dbopcount = dbopcount;  //Do nothing
                      }
                      else
                      {
                         //alert("match " + dlists[jdi] + " " + href);
                         dbopcount++;
                      }
                   } 
                   if (dbopcount > 0)
                     return true; //If this link URL was an internal URL
                   else  //there were no matches to any internal domain, so leave it external
                     return false;
                }
                else
                {
                  return false;
                }
		//return (href.indexOf("http://")!=-1 && href.indexOf(hostname)==-1) ? false : true;				
	};
	this.set = function(obj){
		obj.target = "_self";
	};	
	for (var i=0;i<a.length;i++){
		if(check(a[i])) set(a[i]);
	};		
};

// script initiates on page load. 

this.addEvent = function(obj,type,fn){
	if(obj.attachEvent){
		obj['e'+type+fn] = fn;
		obj[type+fn] = function(){obj['e'+type+fn](window.event );}
		obj.attachEvent('on'+type, obj[type+fn]);
	} else {
		obj.addEventListener(type,fn,false);
	};
};
addEvent(window,"load",blankwin);
</script>
</body>
</html>'
 ); foreach($templatearray as $name => $code)
 {
  $template = array(
   'title' => $db->escape_string($name),
   'template' => $db->escape_string($code),
   'version' => '1',
   'sid' => '-2',
   'dateline' => TIME_NOW
  );  $db->insert_query('templates', $template);  unset($templates[$name]);
 } rebuild_settings();
}function maintenance_deactivate()
{
 global $db; $db->delete_query('templates', 'title=\'maintenance\'');
}function maintenance()
{
 $current_page = my_strtolower(basename(THIS_SCRIPT)); $closed_bypass = array(
  'member.php' => array(
   'login',
   'do_login',
   'logout',
  ),
  'captcha.php',
  'contact.php',
 ); global $mybb, $templates; if($mybb->settings['boardclosed'] == 1 && $mybb->usergroup['canviewboardclosed'] != 1 && !in_array($current_page, $closed_bypass) && (!is_array($closed_bypass[$current_page]) || !in_array($mybb->get_input('action'), $closed_bypass[$current_page])))
 {
  $reason = $mybb->settings['boardclosed_reason'];
  eval("\$page = \"".$templates->get("maintenance")."\";"); 
  output_page($page);
  exit;
 }
}?>?>

Works with both templates/themes

kBpNJrQ - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




I have no words for this template

zN2HIFU - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
Once you look below, your eyes will bleed. I am just showcasing that I have the functionality of the register page, this is work in progress...

t2RMn5I - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
Error checking when submitting the form also works

62gWwFq - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




Jquery will do error checking too

okHo9Ic - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




Here is the regersitation.js (I formatted it and made some slight changes) Work in progress:

Code:
HabboView.add(function() {

    HabboEditor.addCallback("setGender", function(A) {

        $("register-gender").value = A

    });

    HabboEditor.addCallback("setFigure", function(A) {

        $("register-figure").value = A

    });

    HabboEditor.addCallback("setEditorState", function(A) {

        $("register-editor-state").value = A

    });

    window.refreshingAvatars = false;

    if ($("register-avatars-refresh")) {

        Event.observe($("register-avatars-refresh"), "click", function(A) {

            window.refreshingAvatars = true

        })

    }

    if ( !! $("register-birthday")) {

        RegistrationForm.createEnterValidBirthdayTooltip();

        Event.observe($("register-birthday"), "click", function() {

            if (Tips.get("register-birthday")) {

                $("register-birthday").removeClassName("error");

                Tips.get("register-birthday").hideTip()

            }

        })

    }

    if ( !! $("register-name")) {

        RegistrationForm.createCheckButtonTooltip();

        RegistrationForm.createNameTooltip();

        RegistrationForm.previousName = $F("register-name");

        Event.observe($("register-name"), "keydown", function(B) {

            if (B.keyCode == Event.KEY_TAB || B.keyCode == Event.KEY_RETURN) {

                Event.stop(B);

                RegistrationForm.Validator._checkName()

            } else {

                var A = $F("register-name");

                if (A != RegistrationForm.previousName) {

                    RegistrationForm.Validator._resetErrorState($("register-name"));

                    RegistrationForm.previousName = A;

                    RegistrationForm.Validator._lastCheckedName = "";

                    $("registration-overlay").style.display = "block";

                    RegistrationForm._toggleFormSection("register-section-3", true);

                    if (RegistrationForm.nameTooltipState != "create") {

                        RegistrationForm.nameTooltipState = "create";

                        RegistrationForm.createNameTooltip();

                        Tips.get($("register-name")).showTip()

                    }

                }

                RegistrationForm.Validator._nameCheckNeeded = true

            }

        });

        Event.observe($("register-name-check"), "click", function(A) {

            Event.stop(A);

            RegistrationForm.Validator._checkName()

        });

        $("register-name-check-container").show();

        Event.observe($("register-name"), "blur", function(A) {

            if ($F("register-name") != "" && RegistrationForm.Validator._nameCheckNeeded) {

                if (!RegistrationForm.nameSuggestionEnabled) {

                    Tips.get("register-name-check").showTip()

                }

                RegistrationForm.Validator._showErrorState($("register-name"))

            }

        });

        Event.observe($("register-name"), "focus", function(A) {

            Tips.get("register-name-check").hideTip()

        })

    }

    if ( !! $("register-password")) {

        RegistrationForm.createPasswordTooltip();

        new Form.Element.Observer($("register-password"), 0.5, RegistrationForm.Validator.checkPasswordValidity);

        Event.observe($("register-password"), "keyup", function(C) {

            var A = $("register-password");

            var B = $F("register-password");

            RegistrationForm.Validator._lastCheckedPassword = "";

            Tips.get(A).hideTip();

            if (B != "" && B.length < 6) {

                RegistrationForm.Validator._showErrorState(A, true);

                if (RegistrationForm.passwordTooltipState != "tooshort") {

                    RegistrationForm.passwordTooltipState = "tooshort";

                    RegistrationForm.createPasswordTooShortTooltip()

                }

            } else {

                if (B == "") {

                    RegistrationForm.Validator._resetErrorState(A);

                    RegistrationForm.Validator._resetErrorState($("register-password2"));

                    $("register-password2").value = "";

                    if (RegistrationForm.passwordTooltipState != "create") {

                        RegistrationForm.passwordTooltipState = "create";

                        RegistrationForm.createPasswordTooltip()

                    }

                }

            }

            Tips.get(A).showTip()

        });

        Event.observe($("register-password2"), "focus", function(A) {

            if ($F("register-password") == "") {

                $("register-password").focus()

            }

            Tips.get("register-password").showTip()

        });

        Event.observe($("register-password2"), "blur", function(A) {

            Tips.get("register-password").hideTip()

        });

        Event.observe($("register-password2"), "keyup", function(C) {

            var A = $("register-password2");

            var B = $F("register-password2");

            if (B != "") {

                if ($("register-password").hasClassName("error")) {

                    if (RegistrationForm.passwordTooltipState != "invalid") {

                        RegistrationForm.passwordTooltipState = "invalid";

                        RegistrationForm.createPasswordInvalidTooltip()

                    }

                } else {

                    if (B == $F("register-password")) {

                        RegistrationForm.Validator._showSuccessState(A);

                        if (RegistrationForm.passwordTooltipState != "success") {

                            RegistrationForm.passwordTooltipState = "success";

                            RegistrationForm.createPasswordSuccessTooltip()

                        }

                    } else {

                        RegistrationForm.Validator._showErrorState(A, true);

                        if (RegistrationForm.passwordTooltipState != "notsame") {

                            RegistrationForm.passwordTooltipState = "notsame";

                            RegistrationForm.createRetypedPasswordNotSameTootip()

                        }

                    }

                }

            } else {

                if ($F("register-password") != "") {

                    RegistrationForm.Validator._resetErrorState(A);

                    if (RegistrationForm.passwordTooltipState != "retype") {

                        RegistrationForm.passwordTooltipState = "retype";

                        RegistrationForm.createRetypePasswordTooltip()

                    }

                }

            }

            Tips.get("register-password").showTip()

        })

    }

    if ($("register-name-other")) {

        RegistrationForm.Validator._waitingForValidName = true;

        Event.observe($("register-name"), "focus", function(A) {

            $("register-name-other").checked = true

        });

        $$(".register-name-suggestion").each(function(A) {

            Event.observe(A, "change", function(B) {

                if (Event.element(B).checked) {

                    RegistrationForm.Validator._waitingForValidName = false

                }

            })

        })

    }

    if ( !! $("register-email")) {

        RegistrationForm.createEmailToolTip();

        new Form.Element.Observer($("register-email"), 0.5, RegistrationForm.Validator.checkEmailValidity);

        Event.observe($("register-email"), "keyup", function(C) {

            var B = $F("register-email");

            var A = $("register-email");

            RegistrationForm.Validator._lastCheckedEmail = "";

            Tips.get(A).hideTip();

            if (B == "") {

                RegistrationForm.Validator._resetErrorState(A);

                RegistrationForm.Validator._resetErrorState($("register-email2"));

                $("register-email2").value = "";

                if (RegistrationForm.emailTooltipState != "create") {

                    RegistrationForm.emailTooltipState = "create";

                    RegistrationForm.createEmailToolTip()

                }

            } else {

                if (!RegistrationForm.Validator.validateEmail(B)) {

                    RegistrationForm.Validator._showErrorState(A, true);

                    if (RegistrationForm.emailTooltipState != "invalid") {

                        RegistrationForm.emailTooltipState = "invalid";

                        RegistrationForm.createInvalidEmailTooltip()

                    }

                }

            }

            Tips.get(A).showTip()

        });

        Event.observe($("register-email2"), "keyup", function(C) {

            var A = $("register-email2");

            var B = $F("register-email2");

            if (B != "") {

                if ($("register-email").hasClassName("error")) {

                    if (RegistrationForm.emailTooltipState != "invalid") {

                        RegistrationForm.emailTooltipState = "invalid";

                        RegistrationForm.createInvalidEmailTooltip()

                    }

                } else {

                    if (B == $F("register-email")) {

                        RegistrationForm.Validator._showSuccessState(A);

                        if (RegistrationForm.emailTooltipState != "success") {

                            RegistrationForm.emailTooltipState = "success";

                            RegistrationForm.createEmailSuccessTooltip()

                        }

                    } else {

                        RegistrationForm.Validator._showErrorState(A, true);

                        if (RegistrationForm.emailTooltipState != "notsame") {

                            RegistrationForm.emailTooltipState = "notsame";

                            RegistrationForm.createRetypedEmailNotSameTootip()

                        }

                    }

                }

            } else {

                if ($F("register-email") != "") {

                    RegistrationForm.Validator._resetErrorState(A);

                    if (RegistrationForm.emailTooltipState != "retype") {

                        RegistrationForm.emailTooltipState = "retype";

                        RegistrationForm.createRetypeEmailTooltip()

                    }

                }

            }

            Tips.get("register-email").showTip()

        });

        Event.observe($("register-email2"), "focus", function(A) {

            if ($F("register-email") == "") {

                $("register-email").focus()

            }

            Tips.get("register-email").showTip()

        });

        Event.observe($("register-email2"), "blur", function(A) {

            Tips.get("register-email").hideTip()

        })

    }

    Event.observe($("registerform"), "submit", RegistrationForm.handleSubmit)

});

RegistrationForm = {

    ageLimit: -1,

    banHours: -1,

    parentEmailAgeLimit: -1,

    previousName: null,

    passwordTooltipState: null,

    emailTooltipState: null,

    nameTooltipState: null,

    elementFocused: null,

    isCaptchaEnabled: false,

    personalInfoDisabled: false,

    nameSuggestionEnabled: false,

    captchaPublicKey: "none",

    registrationTipStyle: {

        className: "bubbletip left",

        title: " ",

        hook: {

            target: "topRight",

            tip: "bottomRight"

        },

        fixed: true,

        startEvent: "focus",

        endEvent: "blur"

    },

    defaultPos: {

        offset: {

            x: 40,

            y: -6

        }

    },

    init: function(A) {

        if (A) {

            $("registration-overlay").style.display = "block";

            RegistrationForm._toggleFormSection("register-section-3", true);

            RegistrationForm.personalInfoDisabled = true;

            RegistrationForm.createPersonalInfoDisabledTooltip();

            if ($("register-name")) {

                $("register-name").focus()

            }

        }

    },

    handleSubmit: function(A) {

        if (!window.refreshingAvatars) {

            if (!RegistrationForm.Validator.validate()) {

                Event.stop(A);

                Element.show("form-validation-error-box")

            } else {

                if (!RegistrationForm.isRegistrationAllowed()) {

                    Event.stop(A);

                    Cookie.set("rb", 1, RegistrationForm.banHours / 24);

                    RegistrationForm.showAgeLimitMessage()

                } else {

                    if (!RegistrationForm.Validator._parentEmailOk && RegistrationForm.isParentEmailNeeded()) {

                        Event.stop(A);

                        RegistrationForm.showParentEmailCaptchaField();

                        $("register-parentEmail-bubble").focus()

                    } else {

                        if (!RegistrationForm.Validator._captchaOk && RegistrationForm.isCaptchaEnabled) {

                            Event.stop(A);

                            RegistrationForm.showParentEmailCaptchaField();

                            if ($("imagestring")) {

                                $("imagestring").focus()

                            } else {

                                if ($("recaptcha_response_field")) {

                                    $("recaptcha_response_field").focus()

                                }

                            }

                        } else {

                            Event.stopObserving($("registerform"), "submit", RegistrationForm.handleSubmit);

                            Event.observe($("registerform"), "submit", function(B) {

                                return false

                            })

                        }

                    }

                }

            }

        }

    },

    cancel: function(A) {

        location.href = habboReqPath + "index.php" + (A || "")

    },

    isParentEmailNeeded: function() {

        if (RegistrationForm.parentEmailAgeLimit > -1 && !! $("register-birthday")) {

            var A = RegistrationForm._calculateAge();

            if (A != -1) {

                return A <= RegistrationForm.parentEmailAgeLimit

            }

        }

        return false

    },

    showParentEmailCaptchaField: function() {

        if (!$("register-parent-email")) {

            Element.hide("form-validation-error-box");

            var A = "";

            if (RegistrationForm.isParentEmailNeeded()) {

                A = A.concat(L10N.get("register.message.parent_email_js_form"))

            }

            if (RegistrationForm.isCaptchaEnabled) {

                A = A.concat(L10N.get("register.message.captcha_js_form"))

            }

            RegistrationForm._showErrorBubble("register-parent-email", A, function() {

                RegistrationForm._disableFormFields(true, ["register-button-continue", "register-parentEmail-bubble", "imagestring", "register-permission-bubble", "recaptcha_response_field"]);

                if ($("captcha-reload")) {

                    Event.observe($("captcha-reload"), "click", function(B) {

                        Event.stop(B);

                        Utils.reloadCaptcha()

                    })

                } else {

                    if ($("recaptcha-reload")) {

                        Event.observe($("recaptcha-reload"), "click", function(B) {

                            Event.stop(B);

                            Recaptcha.reload()

                        });

                        Utils.showRecaptcha("recaptcha_challenge", RegistrationForm.captchaPublicKey)

                    }

                }

            });

            if ($("imagestring")) {

                Event.observe($("imagestring"), "keyup", RegistrationForm.Validator.checkCapchaValidity)

            }

            if ($("recaptcha_response_field")) {

                Event.observe($("recaptcha_response_field"), "keyup", RegistrationForm.Validator.checkCapchaValidity)

            }

            if ($("register-parentEmail-bubble")) {

                if (Prototype.Browser.IE) {

                    $("bean_month").setStyle({

                        visibility: "hidden"

                    });

                    $("bean_year").setStyle({

                        visibility: "hidden"

                    })

                }

                Rounder.addCorners($("parentEmail-error-box-container"), 4, 4, "rounded-container");

                Event.observe($("register-parentEmail-bubble"), "keypress", function(B) {

                    if (B.keyCode == Event.KEY_TAB || B.keyCode == Event.KEY_RETURN) {

                        RegistrationForm.Validator.checkParentEmailValidity()

                    } else {

                        RegistrationForm.Validator._lastCheckedParentEmail = "";

                        RegistrationForm.Validator._parentEmailOk = false;

                        RegistrationForm.Validator._resetErrorState($("register-parentEmail-bubble"));

                        $("parentEmail-error-box-content").innerHTML = L10N.get("register.tooltip.enteremail")

                    }

                });

                RegistrationForm._track("parentEmail")

            }

        } else {

            if (RegistrationForm.isParentEmailNeeded()) {

                RegistrationForm.Validator.checkParentEmailValidity()

            }

        }

    },

    showAgeLimitMessage: function() {

        RegistrationForm._showErrorBubble("register-ageLimit", L10N.get("register.message.age_limit_ban"), function() {

            RegistrationForm._disableFormFields(false, ["register-parentEmail-cancel"])

        });

        RegistrationForm._track("ageLimit")

    },

    isRegistrationAllowed: function() {

        if (RegistrationForm.ageLimit > -1) {

            var A = RegistrationForm._calculateAge();

            if (A != -1) {

                return A >= RegistrationForm.ageLimit

            }

        }

        return true

    },

    createNameTooltip: function() {

        new Tip("register-name", L10N.get("register.tooltip.name"), Object.extend({

            target: $("register-section-2"),

            offset: {

                x: 155,

                y: 3

            }

        }, RegistrationForm.registrationTipStyle))

    },

    createPasswordTooltip: function() {

        RegistrationForm._createTooltip("register-password", "register.tooltip.password")

    },

    createRetypePasswordTooltip: function() {

        RegistrationForm._createTooltip("register-password", "register.tooltip.retypepassword")

    },

    createCheckButtonTooltip: function() {

        new Tip("register-name-check", L10N.get("register.tooltip.namecheck"), {

            className: "bubbletip left",

            title: " ",

            hook: {

                target: "topRight",

                tip: "bottomRight"

            },

            offset: {

                x: 130,

                y: -3

            },

            startEvent: "focus",

            endEvent: "blur"

        })

    },

    createPersonalInfoDisabledTooltip: function() {

        new Tip("registration-overlay", L10N.get("register.tooltip.personalinfo.disabled"), {

            className: "bubbletip left",

            title: " ",

            hook: {

                target: "topRight",

                tip: "bottomRight"

            },

            fixed: true,

            offset: {

                x: 20,

                y: 150

            }

        })

    },

    createNameSuccessTooltip: function() {

        new Tip("register-name", L10N.get("register.tooltip.namechecksuccess"), Object.extend({

            offset: {

                x: 85,

                y: -6

            }

        }, RegistrationForm.registrationTipStyle))

    },

    createPasswordSuccessTooltip: function() {

        RegistrationForm._createTooltip("register-password", "register.tooltip.passwordsuccess")

    },

    createPasswordTooShortTooltip: function() {

        RegistrationForm._createTooltip("register-password", "register.tooltip.passwordtooshort")

    },

    createRetypedPasswordNotSameTootip: function() {

        RegistrationForm._createTooltip("register-password", "register.tooltip.passwordnotsame")

    },

    createPasswordInvalidTooltip: function() {

        RegistrationForm._createTooltip("register-password", "register.tooltip.invalidpassword")

    },

    createEmailToolTip: function() {

        RegistrationForm._createTooltip("register-email", "register.tooltip.email")

    },

    createRetypeEmailTooltip: function() {

        RegistrationForm._createTooltip("register-email", "register.tooltip.retypeemail")

    },

    createInvalidEmailTooltip: function() {

        RegistrationForm._createTooltip("register-email", "register.tooltip.invalidemail")

    },

    createEmailSuccessTooltip: function() {

        RegistrationForm._createTooltip("register-email", "register.tooltip.emailsuccess")

    },

    createRetypedEmailNotSameTootip: function() {

        RegistrationForm._createTooltip("register-email", "register.tooltip.emailnotsame")

    },

    createEnterPasswordTooltip: function() {

        RegistrationForm._createTooltip("register-password", "register.tooltip.enterpassword")

    },

    createEnterNameToolTip: function() {

        RegistrationForm._createTooltip("register-name", "register.tooltip.entername")

    },

    createEnterEmailTooltip: function() {

        RegistrationForm._createTooltip("register-email", "register.tooltip.enteremail")

    },

    createEnterBirthdayTooltip: function() {

        RegistrationForm._createTooltip("register-birthday", "register.tooltip.enterbirthday")

    },

    createEnterValidBirthdayTooltip: function() {

        RegistrationForm._createTooltip("register-birthday", "register.tooltip.invalidbirthday")

    },

    _createTooltip: function(B, A) {

        new Tip(B, L10N.get(A), Object.extend(RegistrationForm.defaultPos, RegistrationForm.registrationTipStyle))

    },

    updateNameFromBubble: function(A) {

        var B = $("register-name");

        B.value = A;

        B.removeClassName("error");

        B.addClassName("register-ok");

        RegistrationForm.Validator._lastCheckedName = A;

        RegistrationForm.Validator._nameCheckNeeded = false;

        if (RegistrationForm.nameTooltipState != "success") {

            RegistrationForm.nameTooltipState = "success";

            RegistrationForm.createNameSuccessTooltip();

            Tips.get("register-name-check").hideTip()

        }

        $("registration-overlay").style.display = "none";

        RegistrationForm._toggleFormSection("register-section-3", false);

        RegistrationForm.personalInfoDisabled = false;

        RegistrationForm.nameSuggestionEnabled = false;

        $("register-password").focus()

    },

    _showErrorBubble: function(G, B, E) {

        var A = $("register-buttons");

        var C = Builder.node("div", {

            id: G,

            className: "bubbletip"

        }, [Builder.node("div", {

            className: "title"

        }), Builder.node("div", {

            id: "error-bubble-content",

            className: "content"

        })]);

        A.appendChild(C);

        $("error-bubble-content").innerHTML = B;

        Element.hide(C);

        if (E) {

            E()

        }

        var F = Element.getDimensions(C);

        var D = Element.getDimensions(A);

        C.style.left = (D.width - F.width / 2 - 50) + "px";

        C.style.top = ($("register-button-continue").offsetTop - F.height - 50) + "px";

        Element.show(C)

    },

    _calculateAge: function() {

        var E = $F("bean_year");

        var F = $F("bean_month");

        var C = $F("bean_day");

        if (E && F && C) {

            var D = new Date();

            var A = new Date();

            A.setFullYear(E, F - 1, C);

            var B = D.getFullYear() - A.getFullYear();

            if ((A.getMonth() > D.getMonth()) || (A.getMonth() == D.getMonth() && A.getDate() > D.getDate())) {

                B--

            }

            if (B >= 0) {

                return B

            }

        }

        return -1

    },

    _disableFormFields: function(D, C) {

        var B = $("registerform");

        var A = B.getElementsByTagName("*");

        $A(A).each(function(F) {

            if ((F.tagName.toLowerCase() == "select" || F.tagName.toLowerCase() == "input") && F.type != "hidden" && C.indexOf(F.id) == -1) {

                F.disabled = true;

                if (D) {

                    if (F.type != "button" && F.type != "submit") {

                        var G = F.value;

                        var E = F.name;

                        if ((F.type != "radio" && F.type != "checkbox") || (F.type == "radio" && F.checked) || (F.type == "checkbox" && F.checked)) {

                            B.appendChild(Builder.node("input", {

                                type: "hidden",

                                name: E,

                                value: G

                            }))

                        }

                        F.name = E + "Disabled"

                    }

                }

            }

        })

    },

    _toggleFormSection: function(B, A) {

        var D = $(B);

        var C = D.getElementsByTagName("*");

        $A(C).each(function(E) {

            if (E.tagName.toLowerCase() == "select" || E.tagName.toLowerCase() == "input") {

                E.disabled = A

            }

        })

    },

    _track: function(A) {

        if (window.pageTracker) {

            pageTracker._trackPageview("/register/" + A)

        }

    }

};

RegistrationForm.Validator = {

    _lastCheckedName: null,

    _lastCheckedPassword: null,

    _lastCheckedEmail: null,

    _lastCheckedParentEmail: null,

    _lastCheckedCaptcha: null,

    _nameCheckNeeded: true,

    _captchaOk: false,

    _parentEmailOk: false,

    validate: function() {

        var B = true;

        var A = function(C, D) {

            if (!D()) {

                B = false;

                RegistrationForm.Validator._showErrorState($(C), true);

                RegistrationForm.elementFocused = C

            }

        };

        RegistrationForm.elementFocused = "";

        if (!RegistrationForm.personalInfoDisabled) {

            if ( !! $("register-birthday")) {

                A("register-birthday", function() {

                    if (!$F("bean_year") || !$F("bean_month") || !$F("bean_day")) {

                        return false

                    } else {

                        if (new Date().setFullYear($F("bean_year"), $F("bean_month") - 1, $F("bean_day")) > new Date()) {

                            return false

                        }

                    }

                    return true

                })

            }

            if ( !! $("register-email")) {

                A("register-email", function() {

                    if ($F("register-email") == "") {

                        RegistrationForm.emailTooltipState = "enter"

                    }

                    return RegistrationForm.Validator.validateEmail($F("register-email")) && !$("register-email").hasClassName("error")

                });

                A("register-email2", function() {

                    if (!$("register-email").hasClassName("error")) {

                        if ($F("register-email2") == "") {

                            RegistrationForm.emailTooltipState = "retype"

                        } else {

                            if ($F("register-email") != $F("register-email2")) {

                                RegistrationForm.emailTooltipState = "notsame";

                                RegistrationForm.createRetypedEmailNotSameTootip()

                            }

                        }

                        return RegistrationForm.Validator.validateEmail($F("register-email2")) && $F("register-email") == $F("register-email2")

                    }

                    return true

                })

            }

            if ( !! $("register-password")) {

                A("register-password", function() {

                    if ($F("register-password") == "") {

                        RegistrationForm.passwordTooltipState = "enter";

                        RegistrationForm.createEnterPasswordTooltip()

                    }

                    return !!$F("register-password") && !$("register-password").hasClassName("error")

                });

                A("register-password2", function() {

                    if (!$("register-password").hasClassName("error")) {

                        if ($F("register-password2") == "") {

                            RegistrationForm.passwordTooltipState = "retype";

                            RegistrationForm.createRetypePasswordTooltip()

                        } else {

                            if ($F("register-password") != $F("register-password2")) {

                                RegistrationForm.emailTooltipState = "notsame";

                                RegistrationForm.createRetypedPasswordNotSameTootip()

                            }

                        }

                        return !!$F("register-password2") && $F("register-password") == $F("register-password2")

                    }

                    return true

                })

            }

        }

        if ( !! $("register-name")) {

            A("register-name", function() {

                if ($F("register-name") == "") {

                    RegistrationForm.nameTooltipState = "enter";

                    RegistrationForm.createEnterNameToolTip()

                }

                return !!$F("register-name") && !$("register-name").hasClassName("error")

            })

        }

        if ($("register-parentEmail")) {

            A("parentEmail", function() {

                RegistrationForm.Validator.checkParentEmailValidity();

                return RegistrationForm.Validator._parentEmailOk

            })

        }

        if ($("recaptcha_response_field")) {

            A("recaptcha_response_field", function() {

                var C = !! $F("recaptcha_response_field");

                if (C) {

                    RegistrationForm.Validator._captchaOk = true

                }

                return !!$F("recaptcha_response_field")

            })

        }

        RegistrationForm.Validator._showNonFieldTips();

        return B

    },

    checkNameAvailability: function() {

        Tips.get("register-name-check").hideTip();

        var A = $F("register-name");

        if (A != "" && RegistrationForm.Validator._nameCheckNeeded) {

            $("register-name").addClassName("register-loading");

            RegistrationForm.Validator._lastCheckedName = A;

            new Ajax.Request(habboReqPath + "xmlhttp.php?action=username_availability", {

                method: "post",

                parameters: {

                    name: A

                },

                onComplete: function(C, D) {

                    $("register-name").removeClassName("register-loading");

                    if (D.registration_name_in_use || D.registration_name) {

                        $("register-name").removeClassName("register-ok");

                        $("register-name").addClassName("error");

                        var B;

                        if (D.registration_name_in_use && C.responseText != "") {

                            B = C.responseText;

                            RegistrationForm.nameSuggestionEnabled = true

                        } else {

                            B = (D.registration_name) ? D.registration_name : D.registration_name_in_use

                        }

                        new Tip("register-name", B, {

                            className: "bubbletip left",

                            title: " ",

                            hook: {

                                target: "topRight",

                                tip: "bottomRight"

                            },

                            offset: {

                                x: 85,

                                y: -3

                            },

                            fixed: true,

                            startEvent: "focus",

                            endEvent: null

                        });

                        RegistrationForm.Validator._boundNameClickObserver = RegistrationForm.Validator._nameClickObserver.bindAsEventListener(document);

                        RegistrationForm.Validator._nameCheckNeeded = true;

                        Event.observe(document, "click", RegistrationForm.Validator._boundNameClickObserver);

                        $("register-name").focus();

                        Tips.get("register-name").showTip()

                    } else {

                        RegistrationForm.Validator._showSuccessState($("register-name"));

                        if (RegistrationForm.nameTooltipState != "success") {

                            RegistrationForm.nameTooltipState = "success";

                            RegistrationForm.createNameSuccessTooltip()

                        }

                        $("name-error-box").hide();

                        RegistrationForm.Validator._nameCheckNeeded = false;

                        Event.stopObserving(document, "click", RegistrationForm.Validator._boundNameClickObserver);

                        $("registration-overlay").style.display = "none";

                        RegistrationForm._toggleFormSection("register-section-3", false);

                        RegistrationForm.personalInfoDisabled = false;

                        $("register-password").focus()

                    }

                }

            })

        } else {

            if (A == "") {

                $("register-name").removeClassName("register-ok")

            }

        }

    },

    checkEmailValidity: function() {

        var B = $F("register-email");

        var A = $("register-email");

        if (B != RegistrationForm.Validator._lastCheckedEmail && RegistrationForm.Validator.validateEmail(B)) {

            RegistrationForm.Validator._lastCheckedEmail = B;

            new Ajax.Request(habboReqPath + "xmlhttp.php?action=email_availability", {

                method: "post",

                parameters: {

                    email: B

                },

                onComplete: function(E, F) {

                    if (F == "emailOk") {

                        var D = $F("register-email2");

                        var C = $("register-email2");

                        if ( !! D && D == B) {

                            RegistrationForm.Validator._resetErrorState(C);

                            RegistrationForm.Validator._showSuccessState(C);

                            RegistrationForm.emailTooltipState = "success";

                            RegistrationForm.createEmailSuccessTooltip()

                        } else {

                            if ( !! D && D != "") {

                                RegistrationForm.Validator._showErrorState(C, false);

                                if (RegistrationForm.emailTooltipState != "notsame") {

                                    RegistrationForm.emailTooltipState = "notsame";

                                    RegistrationForm.createRetypedEmailNotSameTootip()

                                }

                            } else {

                                if (RegistrationForm.emailTooltipState != "retype") {

                                    RegistrationForm.emailTooltipState = "retype";

                                    RegistrationForm.createRetypeEmailTooltip()

                                }

                            }

                        }

                        A.removeClassName("error");

                        A.addClassName("register-ok")

                    } else {

                        RegistrationForm.Validator._showErrorState(A, false);

                        if (RegistrationForm.emailTooltipState != "invalid") {

                            RegistrationForm.emailTooltipState = "invalid";

                            RegistrationForm.createInvalidEmailTooltip()

                        }

                    }

                    Tips.get(A).showTip()

                }

            })

        }

    },

    checkCapchaValidity: function(A) {

        RegistrationForm.Validator._captchaOk = Event.element(A).value != ""

    },

    checkPasswordValidity: function() {

        var A = $("register-password");

        var B = $F("register-password");

        if (B && B.length >= 6 && B != RegistrationForm.Validator._lastCheckedPassword) {

            RegistrationForm.Validator._lastCheckedPassword = B;

            new Ajax.Request(habboReqPath + "xmlhttp.php?action=complex_password", {

                method: "post",

                parameters: {

                    password: B

                },

                onComplete: function(D, F) {

                    if (F == "charOk") {

                        var E = $F("register-password2");

                        var C = $("register-password2");

                        if ( !! E && E == B) {

                            RegistrationForm.Validator._resetErrorState(C);

                            RegistrationForm.Validator._showSuccessState(C);

                            RegistrationForm.passwordTooltipState = "success";

                            RegistrationForm.createPasswordSuccessTooltip()

                        } else {

                            if ( !! E && E != "") {

                                RegistrationForm.Validator._showErrorState(C, false);

                                if (RegistrationForm.passwordTooltipState != "notsame") {

                                    RegistrationForm.passwordTooltipState = "notsame";

                                    RegistrationForm.createRetypedPasswordNotSameTootip()

                                }

                            } else {

                                if (RegistrationForm.passwordTooltipState != "retype") {

                                    RegistrationForm.passwordTooltipState = "retype";

                                    RegistrationForm.createRetypePasswordTooltip()

                                }

                            }

                        }

                        A.removeClassName("error");

                        A.addClassName("register-ok")

                    } else {

                        RegistrationForm.Validator._showErrorState(A, false);

                        RegistrationForm.passwordTooltipState = "error";

                        new Tip("register-password", D.responseText, Object.extend(RegistrationForm.defaultPos, RegistrationForm.registrationTipStyle))

                    }

                    Tips.get(A).showTip()

                }

            })

        }

    },

    _showErrorState: function(B, A) {

        B.removeClassName("register-ok");

        B.addClassName("error");

        if (A && !B.disabled) {

            B.focus()

        }

    },

    _showSuccessState: function(A) {

        A.removeClassName("error");

        A.addClassName("register-ok")

    },

    _resetErrorState: function(A) {

        A.removeClassName("error");

        A.removeClassName("register-ok")

    },

    validateEmail: function(A) {

        return !!A && A.search(/[^@]+@[^@]+/i) != -1

    },

    _nameClickObserver: function(B) {

        var A = Event.element(B);

        if (A.className == "namelist-link") {

            Event.stop(B);

            RegistrationForm.updateNameFromBubble(A.name)

        } else {

            if (A.id != "register-name") {

                Tips.get($("register-name")).hideTip()

            }

        }

    },

    _checkName: function() {

        var A = $F("register-name");

        if (A != "" && A != RegistrationForm.Validator._lastCheckedName) {

            RegistrationForm.Validator._resetErrorState($("register-name"));

            RegistrationForm.Validator.checkNameAvailability()

        } else {

            $("register-name").focus()

        }

    },

    _showNonFieldTips: function() {

        if (RegistrationForm.elementFocused == "register-birthday") {

            Tips.get("register-birthday").showTip()

        }

    }

};

var HabboEditor = function() {

    var D = true;

    var A = null;

    var B = null;

    var C = [];

    return {

        addCallback: function(E, F) {

            if (!C[E]) {

                C[E] = []

            }

            C[E].push(F)

        },

        setGenderAndFigure: function(F, E) {

            this.setGender(F);

            this.setFigure(E)

        },

        setFigure: function(E) {

            A = E;

            if (C.setFigure) {

                C.setFigure.each(function(F) {

                    F(E)

                })

            }

        },

        setGender: function(E) {

            B = E;

            if (C.setGender) {

                C.setGender.each(function(F) {

                    F(E)

                })

            }

        },

        setAllowedToProceed: function(E) {

            D = E;

            if (C.setAllowedToProceed) {

                C.setAllowedToProceed.each(function(F) {

                    F(E)

                })

            }

        },

        isAllowedToProceed: function() {

            return D

        },

        showHabboClubNotice: function() {

            if (C.showHabboClubNotice) {

                C.showHabboClubNotice.each(function(E) {

                    E()

                })

            }

        },

        hideHabboClubNotice: function() {

            if (C.hideHabboClubNotice) {

                C.hideHabboClubNotice.each(function(E) {

                    E()

                })

            }

        },

        showOldFigureNotice: function() {

            if (C.showOldFigureNotice) {

                C.showOldFigureNotice.each(function(E) {

                    E()

                })

            }

        },

        hideOldFigureNotice: function() {

            if (C.hideOldFigureNotice) {

                C.hideOldFigureNotice.each(function(E) {

                    E()

                })

            }

        },

        setEditorState: function(E) {

            if (C.setEditorState) {

                C.setEditorState.each(function(F) {

                    F(E)

                })

            }

        }

    }

}();





Here is some code when registeration.js requests information

PHP:
if($mybb->input['action'] == "username_availability")
{
 require_once MYBB_ROOT."inc/functions_user.php";
 $username = $mybb->get_input('name'); // Fix bad characters
 $username = trim_blank_chrs($username);
 $username = str_replace(array(unichr(160), unichr(173), unichr(0xCA), dec_to_utf8(8238), dec_to_utf8(8237), dec_to_utf8(8203)), array(" ", "-", "", "", "", ""), $username); // Remove multiple spaces from the username
 $username = preg_replace("#\s{2,}#", " ", $username); header("Content-type: application/json; charset={$charset}"); if(empty($username))
 {
  header('X-JSON: {"registration_name": "'.$lang->banned_characters_username.'"}');
  exit;
 } // Check if the username belongs to the list of banned usernames.
 $banned_username = is_banned_username($username, true);
 if($banned_username)
 {
  header('X-JSON: {"registration_name": "'.$lang->banned_username.'"}');
  exit;
 } // Check for certain characters in username (<, >, &, and slashes)
 if(strpos($username, "<") !== false || strpos($username, ">") !== false || strpos($username, "&") !== false || my_strpos($username, "\\") !== false || strpos($username, ";") !== false || strpos($username, ",") !== false || !validate_utf8_string($username, false, false))
 {
  header('X-JSON: {"registration_name": "'.$lang->banned_characters_username.'"}');
  exit;
 } // Check if the username is actually already in use
 $user = get_user_by_username($username); $plugins->run_hooks("xmlhttp_username_availability"); if($user['uid'])
 {
  $lang->username_taken = $lang->sprintf($lang->username_taken, htmlspecialchars_uni($username));
  header('X-JSON: {"registration_name": "'.$lang->username_taken.'"}');
  exit;
 }
 else
 {
  //$lang->username_available = $lang->sprintf($lang->username_available, htmlspecialchars_uni($username));
  header('X-JSON: {}');
  exit;
 }
}



Here is the template for member_register

Code:
<html>

 <head>

  <title>{$mybb->settings['bbname']} - {$lang->registration}</title>

  

  <meta http-equiv="content-type" content="text/html; charset={$charset}" />
  <script type="text/javascript">

   var andSoItBegins = (new Date()).getTime();

  </script>
  <script src="{$theme['imgdir']}/static/js/visual.js" type="text/javascript"></script>

  <script src="{$theme['imgdir']}/static/js/domready.js" type="text/javascript"></script>

  <script src="{$theme['imgdir']}/static/js/libs.js" type="text/javascript"></script>

  <script src="{$theme['imgdir']}/static/js/common.js" type="text/javascript"></script>

  <script src="{$theme['imgdir']}/static/js/libs2.js" type="text/javascript"></script>
  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/style.css" type="text/css" />

  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/buttons.css" type="text/css" />

  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/boxes.css" type="text/css" />

  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/tooltips.css" type="text/css" />

  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/process.css" type="text/css" />
  <script type="text/javascript">

   document.habboLoggedIn = false;

   var habboName = null;

   var habboReqPath = "";

   var habboStaticFilePath = "{$theme['imgdir']}/";

   var habboImagerUrl = "{$theme['imgdir']}/habbo-imaging/";

   var habboPartner = "";

   window.name = "habboMain";

  </script>
  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/registration.css" type="text/css">
  <script src="{$theme['imgdir']}/static/js/registration.js" type="text/javascript"></script>

  <script type="text/javascript">

   L10N.put('register.tooltip.name', 'Your name can contain lowercase and uppercase letters, numbers and the characters -=?!@:.');

   L10N.put('register.tooltip.password', 'Your password must have at least 6 characters and it must contain both letters and numbers.');

   L10N.put('register.error.password_required', 'Please enter a password');

   L10N.put('register.error.password_too_short', 'Your password should be at least six characters long');

   L10N.put('register.error.retyped_password_required', 'Please re-enter your password');

   L10N.put('register.error.retyped_password_notsame', 'Your passwords do not match, please try again');

   L10N.put('register.error.retyped_email_required', 'Please type your email again');

   L10N.put('register.error.retyped_email_notsame', 'Emails don\'t match');

   L10N.put('register.tooltip.namecheck', 'Click here to check your name is free.');

   L10N.put('register.tooltip.retypepassword', 'Please re-enter your password.');

   L10N.put('register.tooltip.personalinfo.disabled', 'Please choose your name first.');

   L10N.put('register.tooltip.namechecksuccess', 'Congratulations! The name is available.');

   L10N.put('register.tooltip.passwordsuccess', 'Your password is now secure.');

   L10N.put('register.tooltip.passwordtooshort', 'The password you have chosen is too short.');

   L10N.put('register.tooltip.passwordnotsame', 'Password not the same, please re-type it.');

   L10N.put('register.tooltip.invalidpassword', 'The password you have chosen is invalid, please choose a new password.');

   L10N.put('register.tooltip.email', 'Please enter your email address. You need to activate your account using this address so please use your real address.');

   L10N.put('register.tooltip.retypeemail', 'Please re-enter your email address.');

   L10N.put('register.tooltip.invalidemail', 'Please enter a valid email address.');

   L10N.put('register.tooltip.emailsuccess', 'You have provided a valid email address, thanks!');

   L10N.put('register.tooltip.emailnotsame', 'Your retyped email doesn\'t match.');

   L10N.put('register.tooltip.enterpassword', 'Please enter a password.');

   L10N.put('register.tooltip.entername', 'Please enter a name for your name.');

   L10N.put('register.tooltip.enteremail', 'Please enter your email address.');

   L10N.put('register.tooltip.enterbirthday', 'Please give your date of birth - you need this later to get password reminders etc.');

   L10N.put('register.tooltip.acceptterms', 'Please accept the Terms and Conditions');

   L10N.put('register.tooltip.invalidbirthday', 'Please supply a valid birthdate');

   L10N.put('register.tooltip.emailandparentemailsame','You parent\'s email and your email cannot be the same, please provide a different one.');

   L10N.put('register.tooltip.entercaptcha','Enter the code.');

   L10N.put('register.tooltip.captchavalid','Invalid code.');

   L10N.put('register.tooltip.captchainvalid','Invalid code, please try again.');

   L10N.put('register.error.parent_permission','You need to tell your parents about this service');
   {$regimage}
   L10N.put('register.message.age_limit_ban', '<div><p>Sorry but you cannot register, because you are too young. If you entered an incorrect date of birth by accident please try again in a few hours.</p><p style="text-align:right"><input type="button" class="submit" id="register-parentEmail-cancel" value="Cancel" onclick="RegistrationForm.cancel(\'?ageLimit=true\')" /></p></div>');

   RegistrationForm.ageLimit = -1;

   RegistrationForm.banHours = 24;

   HabboView.add(function() {

     Rounder.addCorners($('register-avatar-editor-title'), 4, 4, 'rounded-container');

     RegistrationForm.init('The code that you filled in isn\'t right, please try again.');

   });
   HabboView.add(function() {

    var swfobj = new SWFObject("{$theme['imgdir']}/flash/HabboRegistration.swf", "habboreg", "435", "400", "8");

    swfobj.addParam("base", "{$theme['imgdir']}/flash/");

    swfobj.addParam("wmode", "opaque");

    swfobj.addParam("AllowScriptAccess", "always");

    swfobj.addVariable("figuredata_url", "{$theme['imgdir']}/xml/figuredata.xml");

    swfobj.addVariable("draworder_url", "{$theme['imgdir']}/xml/draworder.xml");

    swfobj.addVariable("localization_url", "{$theme['imgdir']}/xml/figure_editor.xml");

    swfobj.addVariable("habbos_url", "{$theme['imgdir']}/xml/promo_habbos.php");

    swfobj.addVariable("figure", "");

    swfobj.addVariable("gender", "");

    swfobj.write("register-avatar-editor");

   });

  </script>
  <meta name="description" content="{$mybb->settings['bbname']} is a virtual world where you can meet and make friends." />

  <meta name="keywords" content="{$mybb->settings['bbname']}, virtual world, play games, enter competitions, make friends" />
  <!--[if lt IE 8]>

   <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/ie.css" type="text/css" />

  <![endif]-->
  <!--[if lt IE 7]>

   <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/ie6.css" type="text/css" />

   <script src="{$theme['imgdir']}/static/js/pngfix.js" type="text/javascript"></script>

   <script type="text/javascript">

    try { document.execCommand('BackgroundImageCache', false, true); } catch(e) {}

   </script>

   <style type="text/css">

    body { behavior: url({$theme['imgdir']}/csshover.htc); }

   </style>

  <![endif]-->

  <meta name="build" content="headerinclude" />

 </head>

 <body id="register" class="process-template secure-page">

  <div id="overlay"></div>

  <div id="container">

   <div class="cbb process-template-box clearfix">

    <div id="content">

     <div id="header" class="clearfix">

      <h1><a href="{$mybb->settings['bburl']}/index.php"></a></h1>

      <ul class="stats">

       <li class="stats-online">

        <span class="stats-fig">{$count}</span> Users online now!

       </li>

       <li class="stats-visited">{$lang->welcome_current_time}</li>

      </ul>

     </div>

     <div id="process-content">

      <div id="column1" class="column">

       <div class="habblet-container ">

        <form action="{$mybb->settings['bburl']}/member.php" method="post" id="registerform" autocomplete="off">

         <input type="hidden" name="regcheck1" value="" />

         <input type="hidden" name="regcheck2" value="true" />

         <input type="hidden" name="avatar" id="register-figure" value="" />

         <input type="hidden" name="gender" id="register-gender" value="" />

         <input type="hidden" name="editor" id="register-editor-state" value="" />

         <input type="hidden" name="regtime" value="{$time}" />

         <input type="hidden" name="step" value="registration" />

         <input type="hidden" name="action" value="do_register" />

         <div id="register-column-left">

          {$regerrors}

          <div id="register-section-2">

           <div class="rounded rounded-blue">

            <h2 class="heading"><span class="numbering white">1.</span>CHOOSE YOUR NAME</h2>

            <fieldset id="register-fieldset-name">

             <div class="register-label white">{$mybb->settings['bbname']} name</div>

             <input type="text" name="username" id="register-name" class="register-text" value="{$username}" size="25" />

             <span id="register-name-check-container" style="display:none">

              <a class="new-button search-icon" href="#" id="register-name-check"><b><span></span></b><i></i></a>

             </span>

            </fieldset>

            <div id="name-error-box"></div>

           </div>

          </div>

          <div id="register-section-3">

           <div id="registration-overlay"></div>

           <div class="cbb clearfix gray">

            <h2 class="title heading"><span class="numbering white">2.</span>Your Details</h2>

            <div class="box-content">

             {$passboxes}

             <fieldset>

              <div class="register-label">

               <label>I was born on:</label>

              </div>

              <div id="register-birthday">

               <select name="bday1" id="bean_day" class="dateselector">

                <option value=""> </option>

                {$bdaysel}

               </select>

               <select name="bday2" id="bean_month" class="dateselector">

                <option value=""> </option>

                <option value="1" {$bdaymonthsel['1']}>{$lang->month_1}</option>

                <option value="2" {$bdaymonthsel['2']}>{$lang->month_2}</option>

                <option value="3" {$bdaymonthsel['3']}>{$lang->month_3}</option>

                <option value="4" {$bdaymonthsel['4']}>{$lang->month_4}</option>

                <option value="5" {$bdaymonthsel['5']}>{$lang->month_5}</option>

                <option value="6" {$bdaymonthsel['6']}>{$lang->month_6}</option>

                <option value="7" {$bdaymonthsel['7']}>{$lang->month_7}</option>

                <option value="8" {$bdaymonthsel['8']}>{$lang->month_8}</option>

                <option value="9" {$bdaymonthsel['9']}>{$lang->month_9}</option>

                <option value="10" {$bdaymonthsel['10']}>{$lang->month_10}</option>

                <option value="11" {$bdaymonthsel['11']}>{$lang->month_11}</option>

                <option value="12" {$bdaymonthsel['12']}>{$lang->month_12}</option>

               </select>

               <input type="text" size="4" maxlength="4" name="bday3" value="{$birthday_year}" id="bean_year" class="dateselector" />

               <div>{$lang->hide_dob}</div>

              </div>

             </fieldset>

             <fieldset>

              <div class="register-label">

               <label for="register-email">And my email address is:</label>

              </div>

              <div class="register-label">

               <input type="text" name="email" id="register-email" class="register-text" value="{$email}" size="25" maxlength="48" />

              </div>

              <div class="register-label">

               <label for="register-email2">Retype your email address</label>

              </div>

              <div class="register-label">

               <input type="text" name="email2" id="register-email2" class="register-text" value="{$email2}" size="25" maxlength="48" />

              </div>

             </fieldset>

             {$hiddencaptcha}

             {$requiredfields}

             {$customfields}

             {$questionbox}

            </div>

           </div>

           <div id="form-validation-error-box" style="display:none">

            <div class="register-error">

             <div class="rounded rounded-red">Sorry, registration failed. Please check the information you gave in the red boxes.</div>

            </div>

           </div>

          </div>

         </div>

         <div id="register-column-right">

           <div id="register-avatar-editor-title">

            <h2 class="heading"><span class="numbering white">3.</span>{$lang->account_prefs}</h2>

           </div>

           <div id="register-avatar-editor"><a href="http://www.adobe.com/go/getflashplayer" target="_blank"><img src="{$theme['imgdir']}/get_flash_player.png" alt="Get Adobe Flash player" title="Get Adobe Flash player" /></a></div>

          <div id="register-buttons">

           <input type="submit" name="regsubmit" value="Continue" class="continue" id="register-button-continue" />

           <a href="{$mybb->settings['bburl']}index.php?registerCancel=true" class="cancel">Exit registration</a>

          </div>

         </div>

        </form>

       </div>

      </div>

      <script type="text/javascript">

       if(!$(document.body).hasClassName('process-template')) {

        Rounder.init();

       }

      </script>

      <!--[if lt IE 7]>

       <script type="text/javascript">

        Pngfix.doPngImageFix();

       </script>

      <![endif]-->

   {$validator_javascript}

   {$footer}

  
<script type="text/javascript">
this.blankwin = function(){
        var dlists = new Array();  
 dlists[0] = 'forum.ragezone.com'; 

    var hostname = window.location.hostname;
    hostname = hostname.replace("www.","").toLowerCase();
    var a = document.getElementsByTagName("a");    
    this.check = function(obj){
        var href = obj.href.toLowerCase();
                var dbopcount = 0;
                if (href.indexOf("http://")!=-1)
                {
                   for (jdi = 0; jdi <= dlists.length; jdi++)
                   {
                      if (href.indexOf(dlists[jdi]) == -1)
                      {
                         //alert("NO MATCH " + dlists[jdi] + " " + href);
                         dbopcount = dbopcount;  //Do nothing
                      }
                      else
                      {
                         //alert("match " + dlists[jdi] + " " + href);
                         dbopcount++;
                      }
                   } 
                   if (dbopcount > 0)
                     return true; //If this link URL was an internal URL
                   else  //there were no matches to any internal domain, so leave it external
                     return false;
                }
                else
                {
                  return false;
                }
        //return (href.indexOf("http://")!=-1 && href.indexOf(hostname)==-1) ? false : true;                
    };
    this.set = function(obj){
        obj.target = "_self";
    };    
    for (var i=0;i<a.length;i++){
        if(check(a[i])) set(a[i]);
    };        
};

// script initiates on page load. 

this.addEvent = function(obj,type,fn){
    if(obj.attachEvent){
        obj['e'+type+fn] = fn;
        obj[type+fn] = function(){obj['e'+type+fn](window.event );}
        obj.attachEvent('on'+type, obj[type+fn]);
    } else {
        obj.addEventListener(type,fn,false);
    };
};
addEvent(window,"load",blankwin);
</script>
</body>

</html>





I just made some minor changes to member_login, member_lostpw and member_register_agreement



There is still stuff to be done to member_register, but I want to catch up to the other 2006 theme, so I can start prioritising on both



Apparently this is the redirect template, personally I'm not a big fan with what Habbo did

7836cU5 - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




Here is something more presentable, I wasn't happy with the redirect page that Habbo had, I think everyone will appreciate this too


ZrnUgPs - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




Adding the final touches


PsgUF8L - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




Redirect template

Code:
<html>

 <head>

  <title>{$title}</title>
  <meta http-equiv="content-type" content="text/html; charset={$charset}" />

  <meta http-equiv="refresh" content="2;URL={$url}" />
  <script type="text/javascript">

   var andSoItBegins = (new Date()).getTime();

  </script>
  <script src="{$theme['imgdir']}/static/js/visual.js" type="text/javascript"></script>

  <script src="{$theme['imgdir']}/static/js/libs.js" type="text/javascript"></script>

  <script src="{$theme['imgdir']}/static/js/common.js" type="text/javascript"></script>

  <script src="{$theme['imgdir']}/static/js/fullcontent.js" type="text/javascript"></script>

  <script src="{$theme['imgdir']}/static/js/libs2.js" type="text/javascript"></script>
  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/style.css" type="text/css" />

  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/buttons.css" type="text/css" />

  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/boxes.css" type="text/css" />

  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/tooltips.css" type="text/css" />

  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/process.css" type="text/css" />
  <style type="text/css">

   body.process-template #process-content {

    margin-top: 0;

    padding-top: 1em;

   }

   div.box-content img {

    margin-right: 1em;

   }

  </style>
  <script type="text/javascript">

   document.habboLoggedIn = false;

   var habboName = null;

   var habboReqPath = "";

   var habboStaticFilePath = "{$theme['imgdir']}/";

   var habboImagerUrl = "{$theme['imgdir']}/habbo-imaging/";

   var habboPartner = "";

   window.name = "habboMain";

  </script>
  <meta name="description" content="{$mybb->settings['bbname']} is a virtual world where you can meet and make friends." />

  <meta name="keywords" content="{$mybb->settings['bbname']}, virtual world, play games, enter competitions, make friends" />
  <!--[if lt IE 8]>

   <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/ie.css" type="text/css" />

  <![endif]-->
  <!--[if lt IE 7]>

   <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/ie6.css" type="text/css" />

   <script src="{$theme['imgdir']}/static/js/pngfix.js" type="text/javascript"></script>

   <script type="text/javascript">

    try { document.execCommand('BackgroundImageCache', false, true); } catch(e) {}

   </script>

   <style type="text/css">

    body { behavior: url({$theme['imgdir']}/csshover.htc); }

   </style>

  <![endif]-->
  <meta name="build" content="headerinclude" />

 </head>

 <body id="landing" class="process-template">

  <div id="overlay"></div>

  <div id="container">

   <div class="cbb process-template-box clearfix">

    <div id="content">

     <div id="process-content">

      <div id="terms" class="box-content">

       <div><strong>{$title}</strong></div>

       <br />

       <div>

        <img src="{$theme['imgdir']}/images/frank/redirect.png" align="right" />

        <p>{$message}</p>

        <p><a href="{$url}">{$lang->click_no_wait}</a></p>

       </div>

      </div>

      <!--[if lt IE 7]>

       <script type="text/javascript">

        Pngfix.doPngImageFix();

       </script>

      <![endif]-->

     </div>

    </div>

   </div>

  </div>

  <script type="text/javascript">

   HabboView.run();

  </script>

  
<script type="text/javascript">
this.blankwin = function(){
        var dlists = new Array();  
 dlists[0] = 'forum.ragezone.com'; 

    var hostname = window.location.hostname;
    hostname = hostname.replace("www.","").toLowerCase();
    var a = document.getElementsByTagName("a");    
    this.check = function(obj){
        var href = obj.href.toLowerCase();
                var dbopcount = 0;
                if (href.indexOf("http://")!=-1)
                {
                   for (jdi = 0; jdi <= dlists.length; jdi++)
                   {
                      if (href.indexOf(dlists[jdi]) == -1)
                      {
                         //alert("NO MATCH " + dlists[jdi] + " " + href);
                         dbopcount = dbopcount;  //Do nothing
                      }
                      else
                      {
                         //alert("match " + dlists[jdi] + " " + href);
                         dbopcount++;
                      }
                   } 
                   if (dbopcount > 0)
                     return true; //If this link URL was an internal URL
                   else  //there were no matches to any internal domain, so leave it external
                     return false;
                }
                else
                {
                  return false;
                }
        //return (href.indexOf("http://")!=-1 && href.indexOf(hostname)==-1) ? false : true;                
    };
    this.set = function(obj){
        obj.target = "_self";
    };    
    for (var i=0;i<a.length;i++){
        if(check(a[i])) set(a[i]);
    };        
};

// script initiates on page load. 

this.addEvent = function(obj,type,fn){
    if(obj.attachEvent){
        obj['e'+type+fn] = fn;
        obj[type+fn] = function(){obj['e'+type+fn](window.event );}
        obj.attachEvent('on'+type, obj[type+fn]);
    } else {
        obj.addEventListener(type,fn,false);
    };
};
addEvent(window,"load",blankwin);
</script>
</body>

</html>





Now I'll be working on the {$header} templates and {$index} templates to get "me.php" working, this may take some time.

I would also like to make a plugin for MYBB, so when the user has registered, they'll be redirected to misc.php?action=welcome (misc_welcome template) "welcome.php"



Modified {$headerinclude}, {$index} and {$header}, plenty of things that must be changed, but it's looking promising

UDRbuu3 - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




Index template (Work in progress)

Code:
<html>

 <head>

  <title>{$mybb->settings['bbname']}</title>

  {$headerinclude}
  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/welcome.css" type="text/css" />

  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/personal.css" type="text/css" />

  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/group.css" type="text/css" />
  <script src="{$theme['imgdir']}/static/js/group.js" type="text/javascript"></script>
  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/rooms.css" type="text/css" />
  <script src="{$theme['imgdir']}/static/js/rooms.js" type="text/javascript"></script>

  <script src="{$theme['imgdir']}/static/js/moredata.js" type="text/javascript"></script>
  <script src="{$theme['imgdir']}/static/js/habboclub.js" type="text/javascript"></script>
  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/minimail.css" type="text/css" />

  <link rel="stylesheet" href="{$theme['imgdir']}/styles/myhabbo/control.textarea.css" type="text/css" />
  <script src="{$theme['imgdir']}/static/js/minimail.js" type="text/javascript"></script>

 </head>

 <body id="home">

  {$header}
  {$footer}

  
<script type="text/javascript">
this.blankwin = function(){
        var dlists = new Array();  
 dlists[0] = 'forum.ragezone.com'; 

    var hostname = window.location.hostname;
    hostname = hostname.replace("www.","").toLowerCase();
    var a = document.getElementsByTagName("a");    
    this.check = function(obj){
        var href = obj.href.toLowerCase();
                var dbopcount = 0;
                if (href.indexOf("http://")!=-1)
                {
                   for (jdi = 0; jdi <= dlists.length; jdi++)
                   {
                      if (href.indexOf(dlists[jdi]) == -1)
                      {
                         //alert("NO MATCH " + dlists[jdi] + " " + href);
                         dbopcount = dbopcount;  //Do nothing
                      }
                      else
                      {
                         //alert("match " + dlists[jdi] + " " + href);
                         dbopcount++;
                      }
                   } 
                   if (dbopcount > 0)
                     return true; //If this link URL was an internal URL
                   else  //there were no matches to any internal domain, so leave it external
                     return false;
                }
                else
                {
                  return false;
                }
        //return (href.indexOf("http://")!=-1 && href.indexOf(hostname)==-1) ? false : true;                
    };
    this.set = function(obj){
        obj.target = "_self";
    };    
    for (var i=0;i<a.length;i++){
        if(check(a[i])) set(a[i]);
    };        
};

// script initiates on page load. 

this.addEvent = function(obj,type,fn){
    if(obj.attachEvent){
        obj['e'+type+fn] = fn;
        obj[type+fn] = function(){obj['e'+type+fn](window.event );}
        obj.attachEvent('on'+type, obj[type+fn]);
    } else {
        obj.addEventListener(type,fn,false);
    };
};
addEvent(window,"load",blankwin);
</script>
</body>

</html>





So I had to figure out what pieces of information goes in which template and here's the result:

Index (template; is basically me.php)
Code:
<html>

 <head>

  <title>{$mybb->settings['bbname']}</title>

  {$headerinclude}
  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/welcome.css" type="text/css" />

  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/personal.css" type="text/css" />

  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/group.css" type="text/css" />
  <script src="{$theme['imgdir']}/static/js/group.js" type="text/javascript"></script>
  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/rooms.css" type="text/css" />
  <script src="{$theme['imgdir']}/static/js/rooms.js" type="text/javascript"></script>

  <script src="{$theme['imgdir']}/static/js/moredata.js" type="text/javascript"></script>
  <script src="{$theme['imgdir']}/static/js/habboclub.js" type="text/javascript"></script>
  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/minimail.css" type="text/css" />

  <link rel="stylesheet" href="{$theme['imgdir']}/styles/myhabbo/control.textarea.css" type="text/css" />
  <script src="{$theme['imgdir']}/static/js/minimail.js" type="text/javascript"></script>

 </head>

 <body id="home">

  {$header}

  <div id="content-container">

   <div id="navi2-container" class="pngbg">

    <div id="navi2" class="pngbg clearfix">

     <ul>

      <li class="selected">Homepage</li>

      <li class="">My Page</li>

      <li class="">Account Settings</li>

      <li class="last"><a href="{$mybb->settings['bburl']}/club.php">{$mybb->settings['bbname']} Club</a></li>

     </ul>

    </div>

   </div>

  </div>
  {$footer}

  
<script type="text/javascript">
this.blankwin = function(){
        var dlists = new Array();  
 dlists[0] = 'forum.ragezone.com'; 

    var hostname = window.location.hostname;
    hostname = hostname.replace("www.","").toLowerCase();
    var a = document.getElementsByTagName("a");    
    this.check = function(obj){
        var href = obj.href.toLowerCase();
                var dbopcount = 0;
                if (href.indexOf("http://")!=-1)
                {
                   for (jdi = 0; jdi <= dlists.length; jdi++)
                   {
                      if (href.indexOf(dlists[jdi]) == -1)
                      {
                         //alert("NO MATCH " + dlists[jdi] + " " + href);
                         dbopcount = dbopcount;  //Do nothing
                      }
                      else
                      {
                         //alert("match " + dlists[jdi] + " " + href);
                         dbopcount++;
                      }
                   } 
                   if (dbopcount > 0)
                     return true; //If this link URL was an internal URL
                   else  //there were no matches to any internal domain, so leave it external
                     return false;
                }
                else
                {
                  return false;
                }
        //return (href.indexOf("http://")!=-1 && href.indexOf(hostname)==-1) ? false : true;                
    };
    this.set = function(obj){
        obj.target = "_self";
    };    
    for (var i=0;i<a.length;i++){
        if(check(a[i])) set(a[i]);
    };        
};

// script initiates on page load. 

this.addEvent = function(obj,type,fn){
    if(obj.attachEvent){
        obj['e'+type+fn] = fn;
        obj[type+fn] = function(){obj['e'+type+fn](window.event );}
        obj.attachEvent('on'+type, obj[type+fn]);
    } else {
        obj.addEventListener(type,fn,false);
    };
};
addEvent(window,"load",blankwin);
</script>
</body>

</html>



Header (template; {$welcomeblock} will change the template whether you're a guest or a member)



Code:
<div id="overlay"></div>

<div id="header-container">

 <div id="header" class="clearfix">

  <h1><a href="{$mybb->settings['bburl']}/index.php"></a></h1>

  {$welcomeblock}

        <div id="habbos-online">

          <div class="rounded"><span>1 Userss online now</span></div>

        </div>

 </div>

</div>







Here is the picture for template header_welcomeblock_guest

W0GRv1 - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




header_welcomeblock_guest template

Code:
<div id="subnavi">

 <div id="subnavi-user">

            <div class="clearfix"> </div>

            <p><a href="client.php" id="enter-hotel-open-medium-link" target="client" onclick="openOrFocusHabbo(this); return false;">Enter {$mybb->settings['bbname']}</a></p>

 </div>

 <div id="subnavi-login">

  <form action="index.php?anonymousLogin" method="post" id="login-form">

   <input type="hidden" name="page" value="<?php echo $pageid; ?>" />

   <ul>

    <li>

     <label for="login-username" class="login-text"><b>Username</b></label>

     <input tabindex="1" type="text" class="login-field" name="username" id="login-username" />

     <a href="#" id="login-submit-new-button" class="new-button" style="float: left; display:none"><b>Sign in</b><i></i></a>

     <input type="submit" id="login-submit-button" value="Sign in" class="submit" />

    </li>

    <li>

     <label for="login-password" class="login-text"><b>Password</b></label>

     <input tabindex="2" type="password" class="login-field" name="password" id="login-password" />

     <input tabindex="3" type="checkbox" name="_login_remember_me" value="true" id="login-remember-me" />

     <label for="login-remember-me" class="left">Remember me</label>

    </li>

   </ul>

  </form>

  <div id="subnavi-login-help" class="clearfix">

   <ul>

    <li class="register"><a href="forgot.php" id="forgot-password"><span>I forgot my password/username</span></a></li>

    <li><a href="register.php"><span>Register for free</span></a></li>

   </ul>

  </div>

  <div id="remember-me-notification" class="bottom-bubble" style="display:none;">

   <div class="bottom-bubble-t">

    <div></div>

   </div>

   <div class="bottom-bubble-c">

    By selecting 'remember me' you will stay signed in on this computer until you click 'Sign Out'. If this is a public computer please do not use this feature.

   </div>

   <div class="bottom-bubble-b">

    <div></div>

   </div>

  </div>

 </div>

</div>

<script type="text/javascript">

 LoginFormUI.init();

 RememberMeUI.init('right');

</script>

<ul id="navi">

 <li id="tab-register-now"><a href="register.php" target="_self">Register now!</a><span></span></li>

</ul>





Inside *code* */code* tags, ragezone seems to have a jquery problem of sorts because it's adding its own *script**/script* lol



Reference code:

Code:
[LEFT][COLOR=#666666]<script type="text/javascript">
this.blankwin = function(){
        var dlists = new Array();  
 dlists[0] = 'forum.ragezone.com'; 

    var hostname = window.location.hostname;
    hostname = hostname.replace("www.","").toLowerCase();
    var a = document.getElementsByTagName("a");    
    this.check = function(obj){
        var href = obj.href.toLowerCase();
                var dbopcount = 0;
                if (href.indexOf("http://")!=-1)
                {
                   for (jdi = 0; jdi <= dlists.length; jdi++)
                   {
                      if (href.indexOf(dlists[jdi]) == -1)
                      {
                         //alert("NO MATCH " + dlists[jdi] + " " + href);
                         dbopcount = dbopcount;  //Do nothing
                      }
                      else
                      {
                         //alert("match " + dlists[jdi] + " " + href);
                         dbopcount++;
                      }
                   } 
                   if (dbopcount > 0)
                     return true; //If this link URL was an internal URL
                   else  //there were no matches to any internal domain, so leave it external
                     return false;
                }
                else
                {
                  return false;
                }
        //return (href.indexOf("http://")!=-1 && href.indexOf(hostname)==-1) ? false : true;                
    };
    this.set = function(obj){
        obj.target = "_self";
    };    
    for (var i=0;i<a.length;i++){
        if(check(a[i])) set(a[i]);
    };        
};

// script initiates on page load. 

this.addEvent = function(obj,type,fn){
    if(obj.attachEvent){
        obj['e'+type+fn] = fn;
        obj[type+fn] = function(){obj['e'+type+fn](window.event );}
        obj.attachEvent('on'+type, obj[type+fn]);
    } else {
        obj.addEventListener(type,fn,false);
    };
};
addEvent(window,"load",blankwin);
</script>
[/COLOR][/LEFT]



Login/guest/member functionality

yq7gwLu - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Last edited:
Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
Another plugin

EPXerpW - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums


Index template
Code:
<html>
 <head>
  <title>{$mybb->settings['bbname']}</title>
  {$headerinclude}
  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/welcome.css" type="text/css" />
  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/personal.css" type="text/css" />
  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/group.css" type="text/css" />
  <script src="{$theme['imgdir']}/static/js/group.js" type="text/javascript"></script>
  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/rooms.css" type="text/css" />
  <script src="{$theme['imgdir']}/static/js/rooms.js" type="text/javascript"></script>
  <script src="{$theme['imgdir']}/static/js/moredata.js" type="text/javascript"></script>
  <script src="{$theme['imgdir']}/static/js/habboclub.js" type="text/javascript"></script>
  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/minimail.css" type="text/css" />
  <link rel="stylesheet" href="{$theme['imgdir']}/styles/myhabbo/control.textarea.css" type="text/css" />
  <script src="{$theme['imgdir']}/static/js/minimail.js" type="text/javascript"></script>
 </head>
 {$header}
  <div id="content-container">
   <div id="navi2-container" class="pngbg">
    <div id="navi2" class="pngbg clearfix">
     <ul>
      <li class="selected">Homepage</li>
      <li class="">My Page</li>
      <li class="">Account Settings</li>
      <li class="last">{$mybb->settings['bbname']} Club</li>
     </ul>
    </div>
   </div>
  </div>
  <div id="container">
   <div id="content">
    <div id="column1" class="column">
     {$personalinfo}
    </div>
  {$footer}
 </body>
</html>




Features:

* name, user title, board open/close, club offer, birthday, alerts, last visit
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
The revision of holocms that I've been using didn't have this feature, so I spent some time trying to get it to work, seems pretty trivial, but I wanted to showcase it, regardless lol


QC82rit - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums


Code:
var NewsPromo = function() {
    var b = [];
    var c = 0;
    var e = false;
    var a = false;
    var d = function(f) {
        if (!e && !a) {
            a = true;
            Effect.Fade(b[c], {
                duration: 0.8,
                from: 1,
                to: 0
            });
            c = c + f;
            if (c == b.length) {
                c = 0
            }
            if (c == -1) {
                c = b.length - 1
            }
            Effect.Appear(b[c], {
                duration: 0.8,
                from: 0,
                to: 1,
                afterFinish: function() {
                    a = false
                }
            });
            if ($("topstories-nav")) {
                $("topstories-nav").down("span").update(c + 1)
            }
        }
    };
    return {
        init: function() {
            b = $$("#topstories .topstory");
            if (b.length < 2) {
                return
            }
            Event.observe("topstories", "mouseover", function(g) {
                e = true;
                $$("#topstories-nav").each(Element.show)
            });
            Event.observe("topstories", "mouseout", function(g) {
                e = false;
                $$("#topstories-nav").each(Element.hide)
            });
            if ($("topstories-nav")) {
                Event.observe($("topstories-nav").down("a.next"), "click", function(g) {
                    Event.stop(g);
                    e = false;
                    d(1);
                    e = true
                });
                Event.observe($("topstories-nav").down("a.prev"), "click", function(g) {
                    Event.stop(g);
                    e = false;
                    d(-1);
                    e = true
                })
            }
            var f = 10000;
            setInterval(function() {
                d(1)
            }, f)
        }
    }
}();




Another revision to redirect template

J7YeHdR - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




Online count now works properly, I had to create a plugin for it!

PHP:
<?phpif(!defined('IN_MYBB'))
{
 die('This file cannot be accessed directly.');
}$plugins->add_hook('global_start', 'onlinecount');function onlinecount_info()
{
 return array(
  'name'   => '(holo) Force Online Count',
  'description' => 'Displays the amount of people who are currently online',
  'website'  => '',
  'author'  => '',
  'authorsite' => '',
  'version'  => '1.0',
  'compatibility' => '18*',
  'codename'  => 'onlinecount'
 );
}function onlinecount_activate()
{
 global $db; $templatearray = array(
 'onlinecount' => '<span class="stats-fig">{$onlinecount}</span> Users online now'
 ); foreach($templatearray as $name => $code)
 {
  $template = array(
   'title' => $db->escape_string($name),
   'template' => $db->escape_string($code),
   'version' => '1',
   'sid' => '-2',
   'dateline' => TIME_NOW
  );  $db->insert_query('templates', $template);  unset($templates[$name]);
 } rebuild_settings();
}function onlinecount_deactivate()
{
 global $db; $db->delete_query('templates', 'title=\'onlinecount\'');
}function onlinecount()
{
 global $db, $templates, $onlinecount;
 
 $onlinecount = time() - 15*60;
 
 $query = $db->simple_select("users", "lastactive", "lastactive > '$onlinecount'", array("limit" => 1));
 
 if($db->num_rows($query) > 0)
 {
  $onlinecount = $db->num_rows($query);
 }
 else
 {
  $onlinecount = '0';
 }
 
 $onlinecount = eval($templates->render('onlinecount'));
}?>



I really do like the look of this maintenance template for the 2006 (7) theme, so I may implement this aswell, give the user the option to choose between this and the 2009 template inside admin cp.

2hLqhkY - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




Made a few tweaks to the design and I just need to implement individual backgrounds

rMFnsYv - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




Since I tweaked the design, top_story images had to be altered, so I made a bunch for different occasions (if you want more, add them yourselves)

Bp1PuTG - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




I wanted to keep the same image/text as Holocms, so here's its tribute (plus this is when there are not posts made)

wXuyJ70 - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




News articles have their own images, I'll come back to this once I'm on post templates

pvKZcIA - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




Here is index_latestnews template:

Code:
     <div class="habblet-container news-promo">
      <div class="cbb clearfix notitle">
       <div id="newspromo">
        <div id="topstories">
         {$topstories}
         {$count}
        </div>
       </div>
       <script type="text/javascript">
        document.observe('dom:loaded', function() {
          NewsPromo.init();
        });
       </script>
      </div>
     </div>




This is what Index template looks like now

Code:
<html>
 <head>
  <title>{$mybb->settings['bbname']}</title>
  {$headerinclude}
  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/personal.css" type="text/css" />
  <script src="{$theme['imgdir']}/static/js/habboclub.js" type="text/javascript"></script>
 </head>
 {$header}
  <div id="content-container">
   <div id="navi2-container" class="pngbg">
    <div id="navi2" class="pngbg clearfix">
     <ul>
      <li class="selected">Homepage</li>
      <li class="">My Page</li>
      <li class="">Account Settings</li>
      <li class="last">{$mybb->settings['bbname']} Club</li>
     </ul>
    </div>
   </div>
  </div>
  <div id="container">
   <div id="content">
    <div id="column1" class="column">
     {$personalinfo}
    </div>
    <div id="column2" class="column">
     {$latestnews}
    </div>
  {$footer}
  
<script type="text/javascript">
this.blankwin = function(){
        var dlists = new Array();  
 dlists[0] = 'forum.ragezone.com'; 

	var hostname = window.location.hostname;
	hostname = hostname.replace("www.","").toLowerCase();
	var a = document.getElementsByTagName("a");	
	this.check = function(obj){
		var href = obj.href.toLowerCase();
                var dbopcount = 0;
                if (href.indexOf("http://")!=-1)
                {
                   for (jdi = 0; jdi <= dlists.length; jdi++)
                   {
                      if (href.indexOf(dlists[jdi]) == -1)
                      {
                         //alert("NO MATCH " + dlists[jdi] + " " + href);
                         dbopcount = dbopcount;  //Do nothing
                      }
                      else
                      {
                         //alert("match " + dlists[jdi] + " " + href);
                         dbopcount++;
                      }
                   } 
                   if (dbopcount > 0)
                     return true; //If this link URL was an internal URL
                   else  //there were no matches to any internal domain, so leave it external
                     return false;
                }
                else
                {
                  return false;
                }
		//return (href.indexOf("http://")!=-1 && href.indexOf(hostname)==-1) ? false : true;				
	};
	this.set = function(obj){
		obj.target = "_self";
	};	
	for (var i=0;i<a.length;i++){
		if(check(a[i])) set(a[i]);
	};		
};

// script initiates on page load. 

this.addEvent = function(obj,type,fn){
	if(obj.attachEvent){
		obj['e'+type+fn] = fn;
		obj[type+fn] = function(){obj['e'+type+fn](window.event );}
		obj.attachEvent('on'+type, obj[type+fn]);
	} else {
		obj.addEventListener(type,fn,false);
	};
};
addEvent(window,"load",blankwin);
</script>
</body>
</html>




Current list of active plugins, yey!

bZet64H - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




Minor tweak to latest news plugin, now you can deactive the plugin without losing any of the data inside your database. If you want to remove the data entirely, you would uninstall

0HLeqny - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




Here is index in all it's glory, I want to add 1 more thing before I priortise on something else

AijaD - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




f03NNMz - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




Referral system fully functional!

gnppBrk - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




All this functionality for the 2009 theme is making me wary of the 2006 theme, there aren't that many things going on in the 2006 theme :'(



This is just a reminder for myself:

* Referral input for register (add to member_register template)
* Recode jqeury for security question so it fits inline with the other input fields
(it's functional, but I'm not happy)
* Recode captcha so it fits inline with the other input fields (it's functional, but I'm not happy)
* Language files need sorting out (tempted to scrap this altogether)
* Double check everything that I've done so far to make sure everything is working correctly
* Global templates need to be added to {$index}
* Quickmenu needs sorting out (buddy list, my groups and my rooms (May have to hold off since I don't have the emulator database))
* Pick out an emulator and start making it compatible with MYBB
* Check xml templates, make sure I haven't broke anything

I think that's it, I may edit this post if I remember something
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
Worst idea ever, I spent so long on this :mad:

rxKTxM4 - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
Most horrible code i've read in a while. Even Marcos' code is a step up from this. Please do .

That's fine, I'm just following MyBB's documentation; which can be found here:
 
Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
Yeah, don't bother. Use different forum software which has actual competent developers behind it.

That's too bad, I think they're doing a great job with MyBB
 
Newbie Spellweaver
Joined
May 4, 2019
Messages
20
Reaction score
3
Hey bro, as always, love this so much and all the updates.:thumbup:

Is the code u are writing secure? or are u just messing around and not thinking about securing every line?
 
Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
Hey bro, as always, love this so much and all the updates.:thumbup:

Is the code u are writing secure? or are u just messing around and not thinking about securing every line?
Yes all security is handled by MyBB, so I/we don't have to worry about it. As long as you don't edit the core files for MyBB you will be safe!

-


This took some time to get right, it's very cool though! The forum ID 2 will act as news articles, so anything outside of forum ID 2 will act as a normal thread/post on the forums. You will need to make sure that inside your forum permissions that only admins will be able to post in this forum otherwise you'll be having news articles showing up from users


KU60G7l - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums





Here is showthread_shownews template

Code:
<html>
 <head>
  <title>{$mybb->settings['bbname']}</title>


  {$headerinclude}

 </head>
 <body id="news">
 {$header}
  <div id="content-container">
   <div id="navi2-container" class="pngbg">
    <div id="navi2" class="pngbg clearfix">
     <ul>
      <li class="selected last">Recent News</li>
     </ul>
    </div>
   </div>
  </div>
  <div id="container">
   <div id="content">
    <div id="column1" class="column">
     <div class="habblet-container">
      <div class="cbb clearfix default">
       <h2 class="title">Recent News</h2>
       <div id="article-archive">
        {$latestnews}
       </div>
      </div>
     </div>
     <script type="text/javascript">
      if(!$(document.body).hasClassName('process-template')) {
       Rounder.init();
      }
     </script>
    </div>
    <div id="column2" class="column">
     <div class="habblet-container">
      <div class="cbb clearfix notitle">
       <div id="article-wrapper">
        {$shownews}
       </div>
      </div>
     </div>
     <script type="text/javascript">
      if(!$(document.body).hasClassName('process-template')) {
       Rounder.init();
      }
     </script>
    </div>
  {$footer}
 </body>
</html>




This is what it looks like if you're not logged in

gMaHpoo - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




There is a setting in MyBB to stop guests from accessing web pages, in case that's something you want to do!



Totally forgot to declare $footer inside
showthread_shownews, fixed now though!
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
May 4, 2019
Messages
20
Reaction score
3
Do you think you will do homes, groups, badgeshop, botshop, referral system, etc?
 
Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
Do you think you will do homes, groups, badgeshop, botshop, referral system, etc?

Yes I plan on doing homes, groups and as for the referral system, it already works; I just need to add it into member_register.

Badge shop and bot shop; maybe they'll be future plugins?

MyBB already has it implemented :D

ptDVjgl - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




I said I would do it in an earlier post and here we are!

Cnjv6ur - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




I'll probably make a couple of changes to the 2006 maintenance layout, it's not quite authentic



While under maintenance, users can still login, however if they don't have the correct permissions, they'll be sent back to the maintenance page. They can also use the contact form for any queries.

fEQ8JR - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums


zsnAZZW - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




I also changed the language in the backend, so it fits in

4d3zPik - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




Fixed a minor problem with latest news articles on index.php; they weren't displaying in the correct order on inital start up



Force Maintenance plugin no longer has a need to use a template, as the user has a choice which layout they want to use!



Fixed footer links



I'm not even going to align it properly.

The thought of using this template again will give me nightmares; I did it for lost password, but not again! I need inspiration at this point to make this mess something beautiful :'( (There is just too much white)

bcsjm7X - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




It's just so bad, even the captcha which is pretty ugly to look at, makes it a little better. :grr:
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
he9lU8W - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
Advertisements are a go!

Note: It won't display on login page, register, lost password and submitted forms for all listed

oWjJGsc - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




Just noticed that the community tab ain't highlighted on showthread, it is now fixed!
 

Attachments

You must be registered for see attachments list
Back
Top