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
May 4, 2019
Messages
20
Reaction score
3
I have groups and homes for holocms 100% working if u want, but im sure theres plenty of releases on rz of that for holo/haddo... lmk
 
Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
I have groups and homes for holocms 100% working if u want, but im sure theres plenty of releases on rz of that for holo/haddo... lmk
If I need anything, I'll be sure to ask you first!
 
Newbie Spellweaver
Joined
Jan 4, 2012
Messages
80
Reaction score
25
I think homes/groups always worked on Holo without any problems, except it had exploits in it if I'm not mistaken.
 
Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
Vxz1BF6 - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




Revision 2:

MlYh8bl - 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
As I said I would, referrals have been added to member_register



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




- - - Updated - - -



When I was updating the registration.css I accidently deleted code below; so there's that




Code:
[/COLOR]
[COLOR=#222222]
[/COLOR][COLOR=#222222]

#registerform input.register-ok {

 background: #FFF url(../images/registration/ok_icon.gif) no-repeat 99% 50%;

}

[/COLOR][COLOR=#222222]






- - - Updated - - -



I don't think I'll need to make anymore changed to member_register, I still need to clean up registeration.js though




- - - Updated - - -



Compressed registration.js and resolved 100+ validation errors


Code:
[/COLOR][COLOR=#222222]HabboView.add(function(){HabboEditor.addCallback("setGender",function(e){$("register-gender").value=e}),HabboEditor.addCallback("setFigure",function(e){$("register-figure").value=e}),HabboEditor.addCallback("setEditorState",function(e){$("register-editor-state").value=e}),window.refreshingAvatars=!1,$("register-avatars-refresh")&&Event.observe($("register-avatars-refresh"),"click",function(e){window.refreshingAvatars=!0}),$("register-birthday")&&(RegistrationForm.createEnterValidBirthdayTooltip(),Event.observe($("register-birthday"),"click",function(){Tips.get("register-birthday")&&($("register-birthday").removeClassName("error"),Tips.get("register-birthday").hideTip())})),$("register-name")&&(RegistrationForm.createCheckButtonTooltip(),RegistrationForm.createNameTooltip(),RegistrationForm.previousName=$F("register-name"),Event.observe($("register-name"),"keydown",function(e){if(e.keyCode==Event.KEY_TAB||e.keyCode==Event.KEY_RETURN)Event.stop(e),RegistrationForm.Validator._checkName();else{var t=$F("register-name");t!=RegistrationForm.previousName&&(RegistrationForm.Validator._resetErrorState($("register-name")),RegistrationForm.previousName=t,RegistrationForm.Validator._lastCheckedName="",$("registration-overlay").style.display="block",RegistrationForm._toggleFormSection("register-section-3",!0),"create"!=RegistrationForm.nameTooltipState&&(RegistrationForm.nameTooltipState="create",RegistrationForm.createNameTooltip(),Tips.get($("register-name")).showTip())),RegistrationForm.Validator._nameCheckNeeded=!0}}),Event.observe($("register-name-check"),"click",function(e){Event.stop(e),RegistrationForm.Validator._checkName()}),$("register-name-check-container").show(),Event.observe($("register-name"),"blur",function(e){""!==$F("register-name")&&RegistrationForm.Validator._nameCheckNeeded&&(RegistrationForm.nameSuggestionEnabled||Tips.get("register-name-check").showTip(),RegistrationForm.Validator._showErrorState($("register-name")))}),Event.observe($("register-name"),"focus",function(e){Tips.get("register-name-check").hideTip()})),$("register-password")&&(RegistrationForm.createPasswordTooltip(),new Form.Element.Observer($("register-password"),.5,RegistrationForm.Validator.checkPasswordValidity),Event.observe($("register-password"),"keyup",function(e){var t=$("register-password"),r=$F("register-password");RegistrationForm.Validator._lastCheckedPassword="",Tips.get(t).hideTip(),""!==r&&r.length<6?(RegistrationForm.Validator._showErrorState(t,!0),"tooshort"!=RegistrationForm.passwordTooltipState&&(RegistrationForm.passwordTooltipState="tooshort",RegistrationForm.createPasswordTooShortTooltip())):""===r&&(RegistrationForm.Validator._resetErrorState(t),RegistrationForm.Validator._resetErrorState($("register-password2")),$("register-password2").value="","create"!=RegistrationForm.passwordTooltipState&&(RegistrationForm.passwordTooltipState="create",RegistrationForm.createPasswordTooltip())),Tips.get(t).showTip()}),Event.observe($("register-password2"),"focus",function(e){""===$F("register-password")&&$("register-password").focus(),Tips.get("register-password").showTip()}),Event.observe($("register-password2"),"blur",function(e){Tips.get("register-password").hideTip()}),Event.observe($("register-password2"),"keyup",function(e){var t=$("register-password2"),r=$F("register-password2");""!==r?$("register-password").hasClassName("error")?"invalid"!=RegistrationForm.passwordTooltipState&&(RegistrationForm.passwordTooltipState="invalid",RegistrationForm.createPasswordInvalidTooltip()):r==$F("register-password")?(RegistrationForm.Validator._showSuccessState(t),"success"!=RegistrationForm.passwordTooltipState&&(RegistrationForm.passwordTooltipState="success",RegistrationForm.createPasswordSuccessTooltip())):(RegistrationForm.Validator._showErrorState(t,!0),"notsame"!=RegistrationForm.passwordTooltipState&&(RegistrationForm.passwordTooltipState="notsame",RegistrationForm.createRetypedPasswordNotSameTootip())):""!==$F("register-password")&&(RegistrationForm.Validator._resetErrorState(t),"retype"!=RegistrationForm.passwordTooltipState&&(RegistrationForm.passwordTooltipState="retype",RegistrationForm.createRetypePasswordTooltip())),Tips.get("register-password").showTip()})),$("register-email")&&(RegistrationForm.createEmailToolTip(),new Form.Element.Observer($("register-email"),.5,RegistrationForm.Validator.checkEmailValidity),Event.observe($("register-email"),"keyup",function(e){var t=$F("register-email"),r=$("register-email");RegistrationForm.Validator._lastCheckedEmail="",Tips.get(r).hideTip(),""===t?(RegistrationForm.Validator._resetErrorState(r),RegistrationForm.Validator._resetErrorState($("register-email2")),$("register-email2").value="","create"!=RegistrationForm.emailTooltipState&&(RegistrationForm.emailTooltipState="create",RegistrationForm.createEmailToolTip())):RegistrationForm.Validator.validateEmail(t)||(RegistrationForm.Validator._showErrorState(r,!0),"invalid"!=RegistrationForm.emailTooltipState&&(RegistrationForm.emailTooltipState="invalid",RegistrationForm.createInvalidEmailTooltip())),Tips.get(r).showTip()}),Event.observe($("register-email2"),"keyup",function(e){var t=$("register-email2"),r=$F("register-email2");""!==r?$("register-email").hasClassName("error")?"invalid"!=RegistrationForm.emailTooltipState&&(RegistrationForm.emailTooltipState="invalid",RegistrationForm.createInvalidEmailTooltip()):r==$F("register-email")?(RegistrationForm.Validator._showSuccessState(t),"success"!=RegistrationForm.emailTooltipState&&(RegistrationForm.emailTooltipState="success",RegistrationForm.createEmailSuccessTooltip())):(RegistrationForm.Validator._showErrorState(t,!0),"notsame"!=RegistrationForm.emailTooltipState&&(RegistrationForm.emailTooltipState="notsame",RegistrationForm.createRetypedEmailNotSameTootip())):""!==$F("register-email")&&(RegistrationForm.Validator._resetErrorState(t),"retype"!=RegistrationForm.emailTooltipState&&(RegistrationForm.emailTooltipState="retype",RegistrationForm.createRetypeEmailTooltip())),Tips.get("register-email").showTip()}),Event.observe($("register-email2"),"focus",function(e){""===$F("register-email")&&$("register-email").focus(),Tips.get("register-email").showTip()}),Event.observe($("register-email2"),"blur",function(e){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:!1,personalInfoDisabled:!1,nameSuggestionEnabled:!1,captchaPublicKey:"none",registrationTipStyle:{className:"bubbletip left",title:" ",hook:{target:"topRight",tip:"bottomRight"},fixed:!0,startEvent:"focus",endEvent:"blur"},defaultPos:{offset:{x:40,y:-6}},init:function(e){e&&($("registration-overlay").style.display="block",RegistrationForm._toggleFormSection("register-section-3",!0),RegistrationForm.personalInfoDisabled=!0,RegistrationForm.createPersonalInfoDisabledTooltip(),$("register-name")&&$("register-name").focus())},handleSubmit:function(e){window.refreshingAvatars||(RegistrationForm.Validator.validate()?RegistrationForm.isRegistrationAllowed()?!RegistrationForm.Validator._parentEmailOk&&RegistrationForm.isParentEmailNeeded()?(Event.stop(e),RegistrationForm.showParentEmailCaptchaField(),$("register-parentEmail-bubble").focus()):!RegistrationForm.Validator._captchaOk&&RegistrationForm.isCaptchaEnabled?(Event.stop(e),RegistrationForm.showParentEmailCaptchaField(),$("imagestring")?$("imagestring").focus():$("recaptcha_response_field")&&$("recaptcha_response_field").focus()):(Event.stopObserving($("registerform"),"submit",RegistrationForm.handleSubmit),Event.observe($("registerform"),"submit",function(e){return!1})):(Event.stop(e),Cookie.set("rb",1,RegistrationForm.banHours/24),RegistrationForm.showAgeLimitMessage()):(Event.stop(e),Element.show("form-validation-error-box")))},cancel:function(e){location.href=habboReqPath+"index.php"+(e||"")},isParentEmailNeeded:function(){if(-1<RegistrationForm.parentEmailAgeLimit&&$("register-birthday")){var e=RegistrationForm._calculateAge();if(-1!=e)return e<=RegistrationForm.parentEmailAgeLimit}return!1},showParentEmailCaptchaField:function(){if($("register-parent-email"))RegistrationForm.isParentEmailNeeded()&&RegistrationForm.Validator.checkParentEmailValidity();else{Element.hide("form-validation-error-box");var e="";RegistrationForm.isParentEmailNeeded()&&(e=e.concat(L10N.get("register.message.parent_email_js_form"))),RegistrationForm.isCaptchaEnabled&&(e=e.concat(L10N.get("register.message.captcha_js_form"))),RegistrationForm._showErrorBubble("register-parent-email",e,function(){RegistrationForm._disableFormFields(!0,["register-button-continue","register-parentEmail-bubble","imagestring","register-permission-bubble","recaptcha_response_field"]),$("captcha-reload")?Event.observe($("captcha-reload"),"click",function(e){Event.stop(e),Utils.reloadCaptcha()}):$("recaptcha-reload")&&(Event.observe($("recaptcha-reload"),"click",function(e){Event.stop(e),Recaptcha.reload()}),Utils.showRecaptcha("recaptcha_challenge",RegistrationForm.captchaPublicKey))}),$("imagestring")&&Event.observe($("imagestring"),"keyup",RegistrationForm.Validator.checkCapchaValidity),$("recaptcha_response_field")&&Event.observe($("recaptcha_response_field"),"keyup",RegistrationForm.Validator.checkCapchaValidity),$("register-parentEmail-bubble")&&(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(e){e.keyCode==Event.KEY_TAB||e.keyCode==Event.KEY_RETURN?RegistrationForm.Validator.checkParentEmailValidity():(RegistrationForm.Validator._lastCheckedParentEmail="",RegistrationForm.Validator._parentEmailOk=!1,RegistrationForm.Validator._resetErrorState($("register-parentEmail-bubble")),$("parentEmail-error-box-content").innerHTML=L10N.get("register.tooltip.enteremail"))}),RegistrationForm._track("parentEmail"))}},showAgeLimitMessage:function(){RegistrationForm._showErrorBubble("register-ageLimit",L10N.get("register.message.age_limit_ban"),function(){RegistrationForm._disableFormFields(!1,["register-parentEmail-cancel"])}),RegistrationForm._track("ageLimit")},isRegistrationAllowed:function(){if(-1<RegistrationForm.ageLimit){var e=RegistrationForm._calculateAge();if(-1!=e)return e>=RegistrationForm.ageLimit}return!0},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:!0,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(e,t){new Tip(e,L10N.get(t),Object.extend(RegistrationForm.defaultPos,RegistrationForm.registrationTipStyle))},updateNameFromBubble:function(e){var t=$("register-name");t.value=e,t.removeClassName("error"),t.addClassName("register-ok"),RegistrationForm.Validator._lastCheckedName=e,RegistrationForm.Validator._nameCheckNeeded=!1,"success"!=RegistrationForm.nameTooltipState&&(RegistrationForm.nameTooltipState="success",RegistrationForm.createNameSuccessTooltip(),Tips.get("register-name-check").hideTip()),$("registration-overlay").style.display="none",RegistrationForm._toggleFormSection("register-section-3",!1),RegistrationForm.personalInfoDisabled=!1,RegistrationForm.nameSuggestionEnabled=!1,$("register-password").focus()},_showErrorBubble:function(e,t,r){var i=$("register-buttons"),o=Builder.node("div",{id:e,className:"bubbletip"},[Builder.node("div",{className:"title"}),Builder.node("div",{id:"error-bubble-content",className:"content"})]);i.appendChild(o),$("error-bubble-content").innerHTML=t,Element.hide(o),r&&r();var a=Element.getDimensions(o),s=Element.getDimensions(i);o.style.left=s.width-a.width/2-50+"px",o.style.top=$("register-button-continue").offsetTop-a.height-50+"px",Element.show(o)},_calculateAge:function(){var e=$F("bean_year"),t=$F("bean_month"),r=$F("bean_day");if(e&&t&&r){var i=new Date,o=new Date;o.setFullYear(e,t-1,r);var a=i.getFullYear()-o.getFullYear();if((o.getMonth()>i.getMonth()||o.getMonth()==i.getMonth()&&o.getDate()>i.getDate())&&a--,0<=a)return a}return-1},_disableFormFields:function(i,o){var a=$("registerform"),e=a.getElementsByTagName("*");$A(e).each(function(e){if(("select"==e.tagName.toLowerCase()||"input"==e.tagName.toLowerCase())&&"hidden"!=e.type&&-1==o.indexOf(e.id)&&(e.disabled=!0,i&&"button"!=e.type&&"submit"!=e.type)){var t=e.value,r=e.name;("radio"!=e.type&&"checkbox"!=e.type||"radio"==e.type&&e.checked||"checkbox"==e.type&&e.checked)&&a.appendChild(Builder.node("input",{type:"hidden",name:r,value:t})),e.name=r+"Disabled"}})},_toggleFormSection:function(e,t){var r=$(e).getElementsByTagName("*");$A(r).each(function(e){"select"!=e.tagName.toLowerCase()&&"input"!=e.tagName.toLowerCase()||(e.disabled=t)})},_track:function(e){window.pageTracker&&pageTracker._trackPageview("/register/"+e)}},RegistrationForm.Validator={_lastCheckedName:null,_lastCheckedPassword:null,_lastCheckedEmail:null,_lastCheckedParentEmail:null,_lastCheckedCaptcha:null,_nameCheckNeeded:!0,_captchaOk:!1,_parentEmailOk:!1,validate:function(){var r=!0,e=function(e,t){t()||(r=!1,RegistrationForm.Validator._showErrorState($(e),!0),RegistrationForm.elementFocused=e)};return RegistrationForm.elementFocused="",RegistrationForm.personalInfoDisabled||($("register-birthday")&&e("register-birthday",function(){return!!($F("bean_year")&&$F("bean_month")&&$F("bean_day"))&&!((new Date).setFullYear($F("bean_year"),$F("bean_month")-1,$F("bean_day"))>new Date)}),$("register-email")&&(e("register-email",function(){return""===$F("register-email")&&(RegistrationForm.emailTooltipState="enter"),RegistrationForm.Validator.validateEmail($F("register-email"))&&!$("register-email").hasClassName("error")}),e("register-email2",function(){return!!$("register-email").hasClassName("error")||(""===$F("register-email2")?RegistrationForm.emailTooltipState="retype":$F("register-email")!=$F("register-email2")&&(RegistrationForm.emailTooltipState="notsame",RegistrationForm.createRetypedEmailNotSameTootip()),RegistrationForm.Validator.validateEmail($F("register-email2"))&&$F("register-email")==$F("register-email2"))})),$("register-password")&&(e("register-password",function(){return""===$F("register-password")&&(RegistrationForm.passwordTooltipState="enter",RegistrationForm.createEnterPasswordTooltip()),!!$F("register-password")&&!$("register-password").hasClassName("error")}),e("register-password2",function(){return!!$("register-password").hasClassName("error")||(""===$F("register-password2")?(RegistrationForm.passwordTooltipState="retype",RegistrationForm.createRetypePasswordTooltip()):$F("register-password")!=$F("register-password2")&&(RegistrationForm.emailTooltipState="notsame",RegistrationForm.createRetypedPasswordNotSameTootip()),!!$F("register-password2")&&$F("register-password")==$F("register-password2"))}))),$("register-name")&&e("register-name",function(){return""===$F("register-name")&&(RegistrationForm.nameTooltipState="enter",RegistrationForm.createEnterNameToolTip()),!!$F("register-name")&&!$("register-name").hasClassName("error")}),$("register-parentEmail")&&e("parentEmail",function(){return RegistrationForm.Validator.checkParentEmailValidity(),RegistrationForm.Validator._parentEmailOk}),$("recaptcha_response_field")&&e("recaptcha_response_field",function(){return!!$F("recaptcha_response_field")&&(RegistrationForm.Validator._captchaOk=!0),!!$F("recaptcha_response_field")}),RegistrationForm.Validator._showNonFieldTips(),r},checkNameAvailability:function(){Tips.get("register-name-check").hideTip();var e=$F("register-name");""!==e&&RegistrationForm.Validator._nameCheckNeeded?($("register-name").addClassName("register-loading"),RegistrationForm.Validator._lastCheckedName=e,new Ajax.Request(habboReqPath+"xmlhttp.php?action=username_availability",{method:"post",parameters:{name:e},onComplete:function(e,t){var r;($("register-name").removeClassName("register-loading"),t.registration_name_in_use||t.registration_name)?($("register-name").removeClassName("register-ok"),$("register-name").addClassName("error"),t.registration_name_in_use&&""!==e.responseText?(r=e.responseText,RegistrationForm.nameSuggestionEnabled=!0):r=t.registration_name?t.registration_name:t.registration_name_in_use,new Tip("register-name",r,{className:"bubbletip left",title:" ",hook:{target:"topRight",tip:"bottomRight"},offset:{x:85,y:-3},fixed:!0,startEvent:"focus",endEvent:null}),RegistrationForm.Validator._boundNameClickObserver=RegistrationForm.Validator._nameClickObserver.bindAsEventListener(document),RegistrationForm.Validator._nameCheckNeeded=!0,Event.observe(document,"click",RegistrationForm.Validator._boundNameClickObserver),$("register-name").focus(),Tips.get("register-name").showTip()):(RegistrationForm.Validator._showSuccessState($("register-name")),"success"!=RegistrationForm.nameTooltipState&&(RegistrationForm.nameTooltipState="success",RegistrationForm.createNameSuccessTooltip()),$("name-error-box").hide(),RegistrationForm.Validator._nameCheckNeeded=!1,Event.stopObserving(document,"click",RegistrationForm.Validator._boundNameClickObserver),$("registration-overlay").style.display="none",RegistrationForm._toggleFormSection("register-section-3",!1),RegistrationForm.personalInfoDisabled=!1,$("register-password").focus())}})):""===e&&$("register-name").removeClassName("register-ok")},checkEmailValidity:function(){var o=$F("register-email"),a=$("register-email");o!=RegistrationForm.Validator._lastCheckedEmail&&RegistrationForm.Validator.validateEmail(o)&&(RegistrationForm.Validator._lastCheckedEmail=o,new Ajax.Request(habboReqPath+"xmlhttp.php?action=email_availability",{method:"post",parameters:{email:o},onComplete:function(e,t){if("emailOk"==t){var r=$F("register-email2"),i=$("register-email2");r&&r==o?(RegistrationForm.Validator._resetErrorState(i),RegistrationForm.Validator._showSuccessState(i),RegistrationForm.emailTooltipState="success",RegistrationForm.createEmailSuccessTooltip()):r&&""!==r?(RegistrationForm.Validator._showErrorState(i,!1),"notsame"!=RegistrationForm.emailTooltipState&&(RegistrationForm.emailTooltipState="notsame",RegistrationForm.createRetypedEmailNotSameTootip())):"retype"!=RegistrationForm.emailTooltipState&&(RegistrationForm.emailTooltipState="retype",RegistrationForm.createRetypeEmailTooltip()),a.removeClassName("error"),a.addClassName("register-ok")}else RegistrationForm.Validator._showErrorState(a,!1),"invalid"!=RegistrationForm.emailTooltipState&&(RegistrationForm.emailTooltipState="invalid",RegistrationForm.createInvalidEmailTooltip());Tips.get(a).showTip()}}))},checkCapchaValidity:function(e){RegistrationForm.Validator._captchaOk=""!==Event.element(e).value},checkPasswordValidity:function(){var o=$("register-password"),a=$F("register-password");a&&6<=a.length&&a!=RegistrationForm.Validator._lastCheckedPassword&&(RegistrationForm.Validator._lastCheckedPassword=a,new Ajax.Request(habboReqPath+"xmlhttp.php?action=complex_password",{method:"post",parameters:{password:a},onComplete:function(e,t){if("charOk"==t){var r=$F("register-password2"),i=$("register-password2");r&&r==a?(RegistrationForm.Validator._resetErrorState(i),RegistrationForm.Validator._showSuccessState(i),RegistrationForm.passwordTooltipState="success",RegistrationForm.createPasswordSuccessTooltip()):r&&""!==r?(RegistrationForm.Validator._showErrorState(i,!1),"notsame"!=RegistrationForm.passwordTooltipState&&(RegistrationForm.passwordTooltipState="notsame",RegistrationForm.createRetypedPasswordNotSameTootip())):"retype"!=RegistrationForm.passwordTooltipState&&(RegistrationForm.passwordTooltipState="retype",RegistrationForm.createRetypePasswordTooltip()),o.removeClassName("error"),o.addClassName("register-ok")}else RegistrationForm.Validator._showErrorState(o,!1),RegistrationForm.passwordTooltipState="error",new Tip("register-password",e.responseText,Object.extend(RegistrationForm.defaultPos,RegistrationForm.registrationTipStyle));Tips.get(o).showTip()}}))},_showErrorState:function(e,t){e.removeClassName("register-ok"),e.addClassName("error"),t&&!e.disabled&&e.focus()},_showSuccessState:function(e){e.removeClassName("error"),e.addClassName("register-ok")},_resetErrorState:function(e){e.removeClassName("error"),e.removeClassName("register-ok")},validateEmail:function(e){return!!e&&-1!=e.search(/[^@]+@[^@]+/i)},_nameClickObserver:function(e){var t=Event.element(e);"namelist-link"==t.className?(Event.stop(e),RegistrationForm.updateNameFromBubble(t.name)):"register-name"!=t.id&&Tips.get($("register-name")).hideTip()},_checkName:function(){var e=$F("register-name");""!==e&&e!=RegistrationForm.Validator._lastCheckedName?(RegistrationForm.Validator._resetErrorState($("register-name")),RegistrationForm.Validator.checkNameAvailability()):$("register-name").focus()},_showNonFieldTips:function(){"register-birthday"==RegistrationForm.elementFocused&&Tips.get("register-birthday").showTip()}};var HabboEditor=function(){var e=!0,r=[];return{addCallback:function(e,t){r[e]||(r[e]=[]),r[e].push(t)},setGenderAndFigure:function(e,t){this.setGender(e),this.setFigure(t)},setFigure:function(t){t,r.setFigure&&r.setFigure.each(function(e){e(t)})},setGender:function(t){t,r.setGender&&r.setGender.each(function(e){e(t)})},setAllowedToProceed:function(t){e=t,r.setAllowedToProceed&&r.setAllowedToProceed.each(function(e){e(t)})},isAllowedToProceed:function(){return e},showHabboClubNotice:function(){r.showHabboClubNotice&&r.showHabboClubNotice.each(function(e){e()})},hideHabboClubNotice:function(){r.hideHabboClubNotice&&r.hideHabboClubNotice.each(function(e){e()})},showOldFigureNotice:function(){r.showOldFigureNotice&&r.showOldFigureNotice.each(function(e){e()})},hideOldFigureNotice:function(){r.hideOldFigureNotice&&r.hideOldFigureNotice.each(function(e){e()})},setEditorState:function(t){r.setEditorState&&r.setEditorState.each(function(e){e(t)})}}}();

[/COLOR][COLOR=#222222]






- - - Updated - - -



Language files will be on my todo list, I'll just attach them onto existing plugins and go from there




- - - Updated - - -



This is the best you're going to get it, unless you make a plugin (like I did on my first attempt), but then you'll be wasting code since you'll have to rewrite everything in the plugin to get the same results but maybe with your avatar. Honestly, it's not that bad, it serves its purpose and offers functionality




4R1SM2M - 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
Super easy to implement! I just need to add a couple of queries to update some fields and add some stickers into the database for the store/inventory to work



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






Will probably spend some time deleting the trash and keeping the good one's




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




Here is the new table that will be added when you activate/install the member profile plugin (if you uninstall this plugin, the table and all of its data will be removed)




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




I am not looking forward to cataloguing these stickers



Made slight changes to some columns

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




Here is the template for member_profile (still work in progress)

Code:
<html>
 <head>
  <title>{$mybb->settings['bbname']} - {$lang->profile}</title>
  {$headerinclude}
  
  <link rel="stylesheet" href="{$theme['imgdir']}/styles/myhabbo/myhabbo.css" type="text/css" />
  <link rel="stylesheet" href="{$theme['imgdir']}/styles/myhabbo/skins.css" type="text/css" />
  <link rel="stylesheet" href="{$theme['imgdir']}/styles/myhabbo/dialogs.css" type="text/css" />
  <link rel="stylesheet" href="{$theme['imgdir']}/styles/myhabbo/buttons.css" type="text/css" />
  <link rel="stylesheet" href="{$theme['imgdir']}/styles/myhabbo/control.textarea.css" type="text/css" />
  <link rel="stylesheet" href="{$theme['imgdir']}/styles/myhabbo/boxes.css" type="text/css" />
  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/myhabbo.css" type="text/css" />
  <link rel="stylesheet" href="{$theme['imgdir']}/styles/myhabbo/assets.css" type="text/css" />
  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/group.css" type="text/css" />
  
  {$navi2}
  
  <script src="{$theme['imgdir']}/static/js/homeview.js" type="text/javascript"></script>
  <script src="{$theme['imgdir']}/static/js/homeauth.js" type="text/javascript"></script>
  <script src="{$theme['imgdir']}/static/js/homeedit.js" type="text/javascript"></script>
  
  <script type="text/javascript">
   document.observe('dom:loaded', function() {
    initView({$id}, {$id});
   });
   function cancelEditing(expired) {
    location.replace('member.php?action=profile&uid={$id}');
   }

  </script>
 </head>
 <body id="{$mode}">
  {$header}
  <div id="content-container">
   <div id="navi2-container" class="pngbg">
    <div id="navi2" class="pngbg clearfix">
     <ul>
      <li><a href="{$mybb->settings['bburl']}/index.php">Homepage</a></li>
      <li class="selected">My Page</li>
      <li>Account Settings</li>
      <li class="last">{$mybb->settings['bbname']} Club</li>
     </ul>
    </div>
   </div>
  </div>
  <div id="container">
   <div id="content" style="position: relative;" class="clearfix">
    <div id="mypage-wrapper" class="cbb blue">
     <div class="box-tabs-container box-tabs-left clearfix">
      {$edit}
      <h2 class="page-owner">{$formattedname}</h2>
      <ul class="box-tabs"></ul>
     </div>
     <div id="mypage-content">
      {$editpage}
      <div id="mypage-bg" class="{$background}{">
       <div id="playground-outer">
        <div id="playground">
         {$display}
        </div>
       </div>
      </div>
     </div>
     <script language="JavaScript" type="text/javascript">
      initEditToolbar();
      initMovableItems();
      document.observe('dom:loaded', initDraggableDialogs);
     </script>
     <div id="edit-save" style="display:none;"></div>
    {$footer}
   </body>
  </html>




I'll be pausing development for a couple of days as I have other projects that need priotising! Thanks for understanding
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
No images today just stuff I've done in my spare time

* Reporting profiles implemented (this was a lost feature that I had to reengineer as the revision of holocms I'm using doesn't have this implemented)
* Saving profile, checks are made to make sure that you're the user saving the profile and that all information is secured and not empty.
* Add/remove/edit widgets, stickers and stickies
* habboauth.js, habboedit.js and habboview.js have revision changes
* If user doesn't have profile widget, they are given one and the webpage is refreshed using <meta />. If profile doesn't exist, we throw error
* Checks are made to make sure only relevant files/information is being shown if user is logged in and is their profile (E.G. user can't report a profile if its their own or they are not logged in)
*

member_profile template

Code:
<html>
 <head>
  <title>{$mybb->settings['bbname']} - {$lang->profile}</title>
  {$headerinclude}
  
  <link rel="stylesheet" href="{$theme['imgdir']}/styles/myhabbo/myhabbo.css" type="text/css" />
  <link rel="stylesheet" href="{$theme['imgdir']}/styles/myhabbo/skins.css" type="text/css" />
  <link rel="stylesheet" href="{$theme['imgdir']}/styles/myhabbo/dialogs.css" type="text/css" />
  <link rel="stylesheet" href="{$theme['imgdir']}/styles/myhabbo/buttons.css" type="text/css" />
  <link rel="stylesheet" href="{$theme['imgdir']}/styles/myhabbo/control.textarea.css" type="text/css" />
  <link rel="stylesheet" href="{$theme['imgdir']}/styles/myhabbo/boxes.css" type="text/css" />
  <link rel="stylesheet" href="{$theme['imgdir']}/styles/myhabbo/assets.css" type="text/css" />
  <link rel="stylesheet" href="{$theme['imgdir']}/v2/styles/myhabbo.css" type="text/css" />
  
  {$profileincludes}
 </head>
 <body id="{$profilemode}">
  {$header}
  <div id="content-container">
   <div id="navi2-container" class="pngbg">
    <div id="navi2" class="pngbg clearfix">
     <ul>
      <li><a href="{$mybb->settings['bburl']}/index.php">Homepage</a></li>
      <li class="selected">My Page</li>
      <li>Account Settings</li>
      <li class="last">{$mybb->settings['bbname']} Club</li>
     </ul>
    </div>
   </div>
  </div>
  <div id="container">
   <div id="content" class="clearfix">
    <div id="mypage-wrapper" class="cbb blue">
     <div class="box-tabs-container box-tabs-left clearfix">
      {$editbutton}
      <h2 class="page-owner">{$formattedname}</h2>
      <ul class="box-tabs"></ul>
     </div>
     <div id="mypage-content">
      {$toptoolbar}
      <div id="mypage-bg" class="{$profilebackground}">
       <div id="playground-outer">
        <div id="playground">
         {$profilecontents}
        </div>
       </div>
      </div>
     </div>
    </div>
     {$footer}
 </body>
</html>
 
Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
S8NGPmJ - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums




What have I done with the web store? I've removed it entirely.




Why have you removed it? You monster! The web store served no purpose, all it did was use up more resources.




How does this inventory work then? Pretty simple, whatever you add into profileinventory will be in everybodys inventory, there is no set amount and you can change the amount limit of stickers/stickies/widgets in admin cp.




Future plans? I want to add more quality of life updates to enhance the back end and offer the user a better experience overall




There is a couple of more things I want to do with homes before I prioritise something else




- - - Updated - - -



Changes made to profilestickers








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




My mistake, all columns have been set as unsigned
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
Showcasing some quality of life updates for homes!

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




Fixed some alignment issues, especially with the footer



Sabbo - Remaster 2006 Habbo Layout [release][work-in-progress] - RaGEZONE Forums
Backend functionality: Sticker/widget/stickie/background limit and advertisements

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




Advertisement plugin works for both the entire website and profiles


NLm9zZ5 - 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
Minor tweaks with the advertisement plugin and memberprofile plugin.

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


Fixed the gap that advertisement positioning had
Advertisement no longer displays on the about page (it could, but then we'd be making box-content even more tiny than they already are)



As always, feedback is welcome
 

Attachments

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


As always, it's work in progress but I wanted to share my thoughts on this.

Initially I was just going to throw 1K+ (ballpark figure) stickers into the stickers category, but then realised that wouldn't be a great idea. Instead I'll add other categories that'll hold an array of stickers for their specific grouping. Any unsorted stickers will just be added into the stickers category.


I would like to add more admin cp features, adding your own categories and stickers

Feedback is welcome



I would love some constructive feedback on this piece of code!

PHP:
  global $db;
  
  $mode = $mybb->get_input('key');
  
  $type = $mybb->get_input('type');
  
  $widget = $db->escape_string($mybb->get_input('itemId', MyBB::INPUT_INT));
  
  // $noteText = $mybb->get_input('noteText');
  
  // $newskin = $mybb->get_input('skin', MyBB::INPUT_INT);
  
  $stickerid = $db->escape_string($mybb->get_input('selectedStickerId', MyBB::INPUT_INT));
  
  $z = $db->escape_string($mybb->get_input('zindex', MyBB::INPUT_INT));
  
  if(empty($type) && empty($widget) && empty($stickerid) && empty($z) != "")
  {
   error_no_permission();
   exit;
  }
  
  if($mode == 'inventory')
  { 
   $query = $db->simple_select("profileinventory", "message", "type = '1'", array("limit" => 1));
   
   if($db->num_rows($query) > 0)
   {
    $results = $db->fetch_array($query);
    
    header('X-JSON: [["Inventory", "Webstore"], ["'.$results['message'].'_pre", "'.$results['message'].'", "'.$results['message'].'", "Sticker", null, 1]]');
   }
   else
   {
    header('X-JSON: [["Inventory", "Webstore"], []]');
   }
   
   echo '
 <div style="position: relative;">
  <div id="inventory-categories-container">
   <h4>Categories:</h4>
   <div id="inventory-categories">
    <ul class="purchase-main-category">
     <li id="inv-cat-stickers" class="selected-main-category-no-subcategories"><div><strong>Stickers</strong></div></li>
     <li id="inv-cat-bling" class="main-category-no-subcategories"><div>∟ Alpha Bling</div></li>
     <li id="inv-cat-plastic" class="main-category-no-subcategories"><div>∟ Alpha Platic</div></li>
     <li id="inv-cat-wood" class="main-category-no-subcategories"><div>∟ Alpha Wood</div></li>
     <li id="inv-cat-buttons" class="main-category-no-subcategories"><div>∟ Buttons</div></li>
     <li id="inv-cat-backgrounds" class="main-category-no-subcategories"><div><strong>Backgrounds</strong></div></li>
     <li id="inv-cat-widgets" class="main-category-no-subcategories"><div><strong>Widgets</strong></div></li>
     <li id="inv-cat-notes" class="main-category-no-subcategories"><div><strong>Notes</strong></div></li>
    </ul>
   </div>
  </div>
  <div id="inventory-content-container">
   <div id="inventory-items-container">
    <h4>Click an item to select it:</h4>
    <div id="inventory-items">
     <ul id="inventory-item-list">';
   
   $query = $db->simple_select("profileinventory", "fid, message", "type = '1'");
   
   $number = $db->num_rows($query);
   
   if($number > 0)
   {
    while($results = $db->fetch_array($query))
    {
     echo '
      <li id="inventory-item-'.$results['fid'].'" title="'.$results['message'].'">
       <div class="webstore-item-preview '.$results['message'].'_pre">
        <div class="webstore-item-mask"><div class="webstore-item-count"><div>∞</div></div></div>
       </div>
      </li>';
    }
    
    if($number < 20)
    {
     $number = 20 - $number;
     for($count = 1; $count <= $number; $count++)
     {
      echo '<li class="webstore-item-empty"></li>';
     }
    }
   }
   else
   {
    echo '
      <div class="webstore-frank">
       <div class="blackbubble">
        <div class="blackbubble-body">
         <p><strong>Your inventory for this category is completely empty!</strong></p>
         <br class="clear" />
        </div>
       </div>
       <div class="blackbubble-bottom">
        <div class="blackbubble-bottom-body"><img src="'.$bburl.'/web-gallery/images/box-scale/bubble_tail_small.gif" alt="" class="invitation-tail" /></div>
       </div>
       <div class="webstore-frank-image"><img src="'.$bburl.'/web-gallery/images/frank/sorry.gif" alt="" /></div>
      </div>';
   }
   
   echo '
     </ul>
    </div>
   </div>
   <div id="inventory-preview-container">
    <div id="inventory-preview-default"></div>
     <div id="inventory-preview">
      <h4> </h4>
      <div id="inventory-preview-box"></div>
      <div id="inventory-preview-place" class="clearfix">
       <div class="clearfix">
        <a href="#" class="new-button" id="inventory-place"><b>Place</b><i></i></a>
       </div>
      </div>
     </div>
    </div>
   </div>
   <div id="webstore-close-container">
    <div class="clearfix"><a href="#" id="webstore-close" class="new-button"><b>Close</b><i></i></a></div>
   </div>';
  }
  elseif($mode == 'inventory_items')
  {
   if($type == 'stickers')
   {
    $typeset = 1;
   }
   else if($type == 'widgets')
   {
    $typeset = 2;
   }
   else if($type == 'notes')
   {
    $typeset = 3;
   }
   else if($type == 'backgrounds')
   {
    $typeset = 4;
   }
   
   if($typeset != 2)
   {
    $query = $db->simple_select("profileinventory", "fid, message", "type = '".$typeset."'");
    
    $number = $db->num_rows($query);
    
    echo '
   <ul id="webstore-item-list">';
    
    if($number > 0)
    {
     while($results = $db->fetch_array($query))
     {
      echo '
     <li id="inventory-item-'.$results['fid'].'" title="'.$results['message'].'">
      <div class="webstore-item-preview '.$inventorytype.$results['message'].'_pre">
       <div class="webstore-item-mask"><div class="webstore-item-count"><div>∞</div></div></div>
      </div>
     </li>';
     }
     
     if($number < 20)
     {
      $number = 20 - $number;
      for($count = 1; $count <= $number; $count++)
      {
       echo '<li class="webstore-item-empty"></li>';
      }
     }
    }
    else
    {
     echo '
    <div class="webstore-frank">
     <div class="blackbubble">
      <div class="blackbubble-body">
       <p><strong>Your inventory for this category is completely empty!</strong></p>
       <br class="clear" />
      </div>
     </div>
     <div class="blackbubble-bottom">
      <div class="blackbubble-bottom-body"><img src="'.$bburl.'/web-gallery/images/box-scale/bubble_tail_small.gif" alt="" class="invitation-tail" /></div>
     </div>
     <div class="webstore-frank-image"><img src="'.$bburl.'/web-gallery/images/frank/sorry.gif" alt="" /></div>
    </div>';
    }
    
    echo '
   </ul>';
   }
   else
   {    
    echo '
   <ul id="inventory-item-list">
    <li id="inventory-item-p-1" title="Guestbook" class="webstore-widget-item '.webstorewidgetdisabled(2).'">
     <div class="webstore-item-preview w_guestbookwidget_pre">
      <div class="webstore-item-mask"></div>
     </div>
     <div class="webstore-widget-description">
      <h3>Guestbook</h3>
      <p>Guestbook</p>
     </div>
    </li>
    <li id="inventory-item-p-2" title="My Friends" class="webstore-widget-item '.webstorewidgetdisabled(3).'">
     <div class="webstore-item-preview w_friendswidget_pre">
      <div class="webstore-item-mask"></div>
     </div>
     <div class="webstore-widget-description">
      <h3>My Friends</h3>
      <p>Display all your friends</p>
     </div>
    </li>
    <li id="inventory-item-p-3" title="My Badges" class="webstore-widget-item '.webstorewidgetdisabled(4).'">
     <div class="webstore-item-preview w_badgeswidget_pre">
      <div class="webstore-item-mask"></div>
     </div>
     <div class="webstore-widget-description">
      <h3>My Badges</h3>
      <p>Show your badges on your page.</p>
     </div>
    </li>
    <li id="inventory-item-p-4" title="My Video" class="webstore-widget-item '.webstorewidgetdisabled(5).'">
     <div class="webstore-item-preview w_movieswidget_pre">
      <div class="webstore-item-mask"></div>
     </div>
     <div class="webstore-widget-description">
      <h3>My Video</h3>
      <p>Lights, camera and action.</p>
     </div>
    </li>
    <li id="inventory-item-p-5" title="My Ratings" class="webstore-widget-item '.webstorewidgetdisabled(6).'">
     <div class="webstore-item-preview w_ratingwidget_pre">
      <div class="webstore-item-mask"></div>
     </div>
     <div class="webstore-widget-description">
      <h3>My Ratings</h3>
      <p>Let other people rate your page.</p>
     </div>
    </li>
    <li id="inventory-item-p-6" title="My Trax" class="webstore-widget-item '.webstorewidgetdisabled(7).'">
     <div class="webstore-item-preview w_traxplayerwidget_pre">
      <div class="webstore-item-mask"></div>
     </div>
     <div class="webstore-widget-description">
      <h3>My Trax</h3>
      <p>Listen to music on your page.</p>
     </div>
    </li>
   </ul>';
   }
  }
  else if($mode == 'inventory_preview')
  {
   header('X-JSON: ["'.inventorypreview($widget, $type).'_pre", "'.inventorypreview($widget, $type).'", "'.inventorypreview($widget, $type).'", "'.$type.'", null, 1]');
   
   echo '
   <h4> </h4>
   <div id="inventory-preview-box"></div>
   <div id="inventory-preview-place" class="clearfix">
    <div class="clearfix"><a href="#" class="new-button" id="inventory-place"><b>Place</b><i></i></a></div>
   </div>';
  }
  else if($mode == 'place_sticker')
  {
   $query = $db->simple_select("profileinventory", "*", "fid = '".$stickerid."' AND type = '1'", array("limit" => 1));
   
   if($db->num_rows($query) > 0)
   {
    $results = $db->fetch_array($query);
    
    $insert = array(
      'message' => $results['message'],
      'type'  => '1',
      'subtype' => '0',
      'pid'  => $myid,
      'x'   => '10',
      'y'   => '10',
      'z'   => $z
    );
     
    $db->insert_query("profilestickers", $insert);
    
    $query = $db->simple_select("profilestickers", "*", "pid = '".$myid."' AND message = '".$results['message']."' AND type = '1'", array("order_by" => "fid DESC", "limit" => 1));
    
    $results = $db->fetch_array($query);
    
    header('X-JSON: ['.$results['fid'].','.$results['fid'].']');
    
    echo '<div class="movable sticker '.$results['message'] . '" style="left: 10px; top: 10px; z-index: '.$results['z'].'" id="sticker-'.$results['fid'].'">
              <img src="'.$bburl.'/web-gallery/images/myhabbo/icon_edit.gif" class="edit-button" id="sticker-' . $results['fid'] . '-edit" />
              <script language="JavaScript" type="text/javascript">
                Event.observe(\'sticker-'.$results['fid'].'-edit\', \'click\', function(e) { openEditMenu(e, '.$results['fid'].', \'sticker\', \'sticker-'.$results['fid'].'-edit\'); }, false);
              </script>
              </div>';
   }



Here is an updated revision

PHP:
  global $db;
  
  $mode = $mybb->get_input('key');
  
  $type = $mybb->get_input('type');
  
  $widget = $db->escape_string($mybb->get_input('itemId', MyBB::INPUT_INT));
  
  // $noteText = $mybb->get_input('noteText');
  
  // $newskin = $mybb->get_input('skin', MyBB::INPUT_INT);
  
  $stickerid = $db->escape_string($mybb->get_input('selectedStickerId', MyBB::INPUT_INT));
  
  $z = $db->escape_string($mybb->get_input('zindex', MyBB::INPUT_INT));
  
  if(empty($type) && empty($widget) && empty($stickerid) && empty($z) != "")
  {
   error_no_permission();
   exit;
  }
  
  if($mode == 'inventory')
  { 
   $query = $db->simple_select("profileinventory", "message", "type = '1'", array("limit" => 1));
   
   if($db->num_rows($query) > 0)
   {
    $results = $db->fetch_array($query);
    
    header('X-JSON: [["Inventory", "Webstore"], ["'.$results['message'].'_pre", "'.$results['message'].'", "'.$results['message'].'", "Sticker", null, 1]]');
   }
   else
   {
    header('X-JSON: [["Inventory", "Webstore"], []]');
   }
   
   echo '
 <div style="position: relative;">
  <div id="inventory-categories-container">
   <h4>Categories:</h4>
   <div id="inventory-categories">
    <ul class="purchase-main-category">
     <li id="inv-cat-stickers" class="selected-main-category-no-subcategories"><div><strong>Stickers</strong></div></li>
     <li id="inv-cat-bling" class="main-category-no-subcategories"><div>∟ Alpha Bling</div></li>
     <li id="inv-cat-plastic" class="main-category-no-subcategories"><div>∟ Alpha Platic</div></li>
     <li id="inv-cat-wood" class="main-category-no-subcategories"><div>∟ Alpha Wood</div></li>
     <li id="inv-cat-buttons" class="main-category-no-subcategories"><div>∟ Buttons</div></li>
     <li id="inv-cat-backgrounds" class="main-category-no-subcategories"><div><strong>Backgrounds</strong></div></li>
     <li id="inv-cat-widgets" class="main-category-no-subcategories"><div><strong>Widgets</strong></div></li>
     <li id="inv-cat-notes" class="main-category-no-subcategories"><div><strong>Notes</strong></div></li>
    </ul>
   </div>
  </div>
  <div id="inventory-content-container">
   <div id="inventory-items-container">
    <h4>Click an item to select it:</h4>
    <div id="inventory-items">
     <ul id="inventory-item-list">';
   
   getitems(1);
   
   echo '
     </ul>
    </div>
   </div>
   <div id="inventory-preview-container">
    <div id="inventory-preview-default"></div>
     <div id="inventory-preview">
      <h4> </h4>
      <div id="inventory-preview-box"></div>
      <div id="inventory-preview-place" class="clearfix">
       <div class="clearfix">
        <a href="#" class="new-button" id="inventory-place"><b>Place</b><i></i></a>
       </div>
      </div>
     </div>
    </div>
   </div>
   <div id="webstore-close-container">
    <div class="clearfix"><a href="#" id="webstore-close" class="new-button"><b>Close</b><i></i></a></div>
   </div>';
  }
  elseif($mode == 'inventory_items')
  {
   if($type == 'stickers')
   {
    $typeset = 1;
   }
   else if($type == 'widgets')
   {
    $typeset = 2;
   }
   else if($type == 'notes')
   {
    $typeset = 3;
   }
   else if($type == 'backgrounds')
   {
    $typeset = 4;
   }
   
   if($typeset != 2)
   {
    echo '
   <ul id="webstore-item-list">';
   
    getitems($typeset);
    
    echo '
   </ul>';
   }
   else
   {    
    echo '
   <ul id="inventory-item-list">
    <li id="inventory-item-p-1" title="Guestbook" class="webstore-widget-item '.webstorewidgetdisabled(2).'">
     <div class="webstore-item-preview w_guestbookwidget_pre">
      <div class="webstore-item-mask"></div>
     </div>
     <div class="webstore-widget-description">
      <h3>Guestbook</h3>
      <p>Guestbook</p>
     </div>
    </li>
    <li id="inventory-item-p-2" title="My Friends" class="webstore-widget-item '.webstorewidgetdisabled(3).'">
     <div class="webstore-item-preview w_friendswidget_pre">
      <div class="webstore-item-mask"></div>
     </div>
     <div class="webstore-widget-description">
      <h3>My Friends</h3>
      <p>Display all your friends</p>
     </div>
    </li>
    <li id="inventory-item-p-3" title="My Badges" class="webstore-widget-item '.webstorewidgetdisabled(4).'">
     <div class="webstore-item-preview w_badgeswidget_pre">
      <div class="webstore-item-mask"></div>
     </div>
     <div class="webstore-widget-description">
      <h3>My Badges</h3>
      <p>Show your badges on your page.</p>
     </div>
    </li>
    <li id="inventory-item-p-4" title="My Video" class="webstore-widget-item '.webstorewidgetdisabled(5).'">
     <div class="webstore-item-preview w_movieswidget_pre">
      <div class="webstore-item-mask"></div>
     </div>
     <div class="webstore-widget-description">
      <h3>My Video</h3>
      <p>Lights, camera and action.</p>
     </div>
    </li>
    <li id="inventory-item-p-5" title="My Ratings" class="webstore-widget-item '.webstorewidgetdisabled(6).'">
     <div class="webstore-item-preview w_ratingwidget_pre">
      <div class="webstore-item-mask"></div>
     </div>
     <div class="webstore-widget-description">
      <h3>My Ratings</h3>
      <p>Let other people rate your page.</p>
     </div>
    </li>
    <li id="inventory-item-p-6" title="My Trax" class="webstore-widget-item '.webstorewidgetdisabled(7).'">
     <div class="webstore-item-preview w_traxplayerwidget_pre">
      <div class="webstore-item-mask"></div>
     </div>
     <div class="webstore-widget-description">
      <h3>My Trax</h3>
      <p>Listen to music on your page.</p>
     </div>
    </li>
   </ul>';
   }
  }
  else if($mode == 'inventory_preview')
  {
   header('X-JSON: ["'.inventorypreview($widget, $type).'_pre", "'.inventorypreview($widget, $type).'", "'.inventorypreview($widget, $type).'", "'.$type.'", null, 1]');
   
   echo '
   <h4> </h4>
   <div id="inventory-preview-box"></div>
   <div id="inventory-preview-place" class="clearfix">
    <div class="clearfix"><a href="#" class="new-button" id="inventory-place"><b>Place</b><i></i></a></div>
   </div>';
  }
  else if($mode == 'place_sticker')
  {
   $query = $db->simple_select("profileinventory", "*", "fid = '".$stickerid."' AND type = '1'", array("limit" => 1));
   
   if($db->num_rows($query) > 0)
   {
    $results = $db->fetch_array($query);
    
    $insert = array(
      'message' => $results['message'],
      'type'  => '1',
      'subtype' => '0',
      'pid'  => $myid,
      'x'   => '10',
      'y'   => '10',
      'z'   => $z
    );
     
    $db->insert_query("profilestickers", $insert);
    
    $query = $db->simple_select("profilestickers", "*", "pid = '".$myid."' AND message = '".$results['message']."' AND type = '1'", array("order_by" => "fid DESC", "limit" => 1));
    
    $results = $db->fetch_array($query);
    
    header('X-JSON: ['.$results['fid'].','.$results['fid'].']');
    
    echo '<div class="movable sticker '.$results['message'] . '" style="left: 10px; top: 10px; z-index: '.$results['z'].'" id="sticker-'.$results['fid'].'">
              <img src="'.$bburl.'/web-gallery/images/myhabbo/icon_edit.gif" class="edit-button" id="sticker-' . $results['fid'] . '-edit" />
              <script language="JavaScript" type="text/javascript">
                Event.observe(\'sticker-'.$results['fid'].'-edit\', \'click\', function(e) { openEditMenu(e, '.$results['fid'].', \'sticker\', \'sticker-'.$results['fid'].'-edit\'); }, false);
              </script>
              </div>';
   }
  }



I just noticed that

PHP:
$query = $db->simple_select("profileinventory", "*", "fid = '".$stickerid."' AND type = '1'", array("limit" => 1));

PHP:
$query = $db->simple_select("profileinventory", "message", "fid = '".$stickerid."' AND type = '1'", array("limit" => 1));































So there's that updated



Same goes for

PHP:
$query = $db->simple_select("profilestickers", "*", "pid = '".$myid."' AND message = '".$results['message']."' AND type = '1'", array("order_by" => "fid DESC", "limit" => 1));

to:

PHP:
$query = $db->simple_select("profilestickers", "fid, message, z", "pid = '".$myid."' AND message = '".$results['message']."' AND type = '1'", array("order_by" => "fid DESC", "limit" => 1));

But besides that, I think it's looking pretty good



There is some deprecated html inside this code too, but again this is all work in progress!



This is kind of great, I'm spotting more mistakes that I had made

Updated!

PHP:
$db->insert_query("profilestickers", array('message' => $results['message'], 'type' => '1', 'subtype' => '0', 'pid' => $myid, 'x' => '10', 'y' => '10', 'z' => $z));



Pretty happy with the results, thanks guys :lol:



No longer need this:

Code:
[LEFT][COLOR=#dd0000]["Inventory", "Webstore"]



[/COLOR][/LEFT]
Now I can just have:

Code:
[LEFT][COLOR=#dd0000]["Inventory"][/COLOR][/LEFT]



Removed from integer values. $mybb->get_input() is enough.

Code:
[LEFT][COLOR=#0000bb]$db[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000bb]escape_string[/COLOR][COLOR=#007700]()[/COLOR][/LEFT]

Added htmlspecialchars_uni() to $results['message'] before outputting it



Removed exit; before error_no_permission() as it's already called from another function that uses it



Here is the updated revision:

PHP:
  $mode = $mybb->get_input('key');
  
  $type = $mybb->get_input('type');
  
  $widget = $mybb->get_input('itemId', MyBB::INPUT_INT);
  
  // $noteText = $mybb->get_input('noteText');
  
  // $newskin = $mybb->get_input('skin', MyBB::INPUT_INT);
  
  $stickerid = $mybb->get_input('selectedStickerId', MyBB::INPUT_INT);
  
  $z = $mybb->get_input('zindex', MyBB::INPUT_INT);
  
  if(empty($type) && empty($widget) && empty($stickerid) && empty($z) != "")
  {
   error_no_permission();
  }
  
  global $db;
  
  if($mode == 'inventory')
  { 
   $query = $db->simple_select("profileinventory", "message", "type = '1'", array("limit" => 1));
   
   if($db->num_rows($query) > 0)
   {
    $results = $db->fetch_array($query);
    
    header('X-JSON: [["Inventory"], ["'.$results['message'].'_pre", "'.$results['message'].'", "'.$results['message'].'", "Sticker", null, 1]]');
   }
   else
   {
    header('X-JSON: [["Inventory"], []]');
   }
   
   echo '
 <div style="position: relative;">
  <div id="inventory-categories-container">
   <h4>Categories:</h4>
   <div id="inventory-categories">
    <ul class="purchase-main-category">
     <li id="inv-cat-stickers" class="selected-main-category-no-subcategories"><div><strong>Stickers</strong></div></li>
     <li id="inv-cat-bling" class="main-category-no-subcategories"><div>∟ Alpha Bling</div></li>
     <li id="inv-cat-plastic" class="main-category-no-subcategories"><div>∟ Alpha Platic</div></li>
     <li id="inv-cat-wood" class="main-category-no-subcategories"><div>∟ Alpha Wood</div></li>
     <li id="inv-cat-buttons" class="main-category-no-subcategories"><div>∟ Buttons</div></li>
     <li id="inv-cat-backgrounds" class="main-category-no-subcategories"><div><strong>Backgrounds</strong></div></li>
     <li id="inv-cat-widgets" class="main-category-no-subcategories"><div><strong>Widgets</strong></div></li>
     <li id="inv-cat-notes" class="main-category-no-subcategories"><div><strong>Notes</strong></div></li>
    </ul>
   </div>
  </div>
  <div id="inventory-content-container">
   <div id="inventory-items-container">
    <h4>Click an item to select it:</h4>
    <div id="inventory-items">
     <ul id="inventory-item-list">';
   
   getitems(1);
   
   echo '
     </ul>
    </div>
   </div>
   <div id="inventory-preview-container">
    <div id="inventory-preview-default"></div>
     <div id="inventory-preview">
      <h4> </h4>
      <div id="inventory-preview-box"></div>
      <div id="inventory-preview-place" class="clearfix">
       <div class="clearfix">
        <a href="#" class="new-button" id="inventory-place"><b>Place</b><i></i></a>
       </div>
      </div>
     </div>
    </div>
   </div>
   <div id="webstore-close-container">
    <div class="clearfix"><a href="#" id="webstore-close" class="new-button"><b>Close</b><i></i></a></div>
   </div>';
  }
  elseif($mode == 'inventory_items')
  {
   if($type == 'stickers')
   {
    $typeset = 1;
   }
   else if($type == 'widgets')
   {
    $typeset = 2;
   }
   else if($type == 'notes')
   {
    $typeset = 3;
   }
   else if($type == 'backgrounds')
   {
    $typeset = 4;
   }
   
   if($typeset != 2)
   {
    echo '
   <ul id="webstore-item-list">';
   
    getitems($typeset);
    
    echo '
   </ul>';
   }
   else
   {    
    echo '
   <ul id="inventory-item-list">
    <li id="inventory-item-p-1" title="Guestbook" class="webstore-widget-item '.webstorewidgetdisabled(2).'">
     <div class="webstore-item-preview w_guestbookwidget_pre">
      <div class="webstore-item-mask"></div>
     </div>
     <div class="webstore-widget-description">
      <h3>Guestbook</h3>
      <p>Guestbook</p>
     </div>
    </li>
    <li id="inventory-item-p-2" title="My Friends" class="webstore-widget-item '.webstorewidgetdisabled(3).'">
     <div class="webstore-item-preview w_friendswidget_pre">
      <div class="webstore-item-mask"></div>
     </div>
     <div class="webstore-widget-description">
      <h3>My Friends</h3>
      <p>Display all your friends</p>
     </div>
    </li>
    <li id="inventory-item-p-3" title="My Badges" class="webstore-widget-item '.webstorewidgetdisabled(4).'">
     <div class="webstore-item-preview w_badgeswidget_pre">
      <div class="webstore-item-mask"></div>
     </div>
     <div class="webstore-widget-description">
      <h3>My Badges</h3>
      <p>Show your badges on your page.</p>
     </div>
    </li>
    <li id="inventory-item-p-4" title="My Video" class="webstore-widget-item '.webstorewidgetdisabled(5).'">
     <div class="webstore-item-preview w_movieswidget_pre">
      <div class="webstore-item-mask"></div>
     </div>
     <div class="webstore-widget-description">
      <h3>My Video</h3>
      <p>Lights, camera and action.</p>
     </div>
    </li>
    <li id="inventory-item-p-5" title="My Ratings" class="webstore-widget-item '.webstorewidgetdisabled(6).'">
     <div class="webstore-item-preview w_ratingwidget_pre">
      <div class="webstore-item-mask"></div>
     </div>
     <div class="webstore-widget-description">
      <h3>My Ratings</h3>
      <p>Let other people rate your page.</p>
     </div>
    </li>
    <li id="inventory-item-p-6" title="My Trax" class="webstore-widget-item '.webstorewidgetdisabled(7).'">
     <div class="webstore-item-preview w_traxplayerwidget_pre">
      <div class="webstore-item-mask"></div>
     </div>
     <div class="webstore-widget-description">
      <h3>My Trax</h3>
      <p>Listen to music on your page.</p>
     </div>
    </li>
   </ul>';
   }
  }
  else if($mode == 'inventory_preview')
  {
   if(empty($widget))
   {
    exit;
   }
   
   header('X-JSON: ["'.inventorypreview($widget, $type).'_pre", "'.inventorypreview($widget, $type).'", "'.inventorypreview($widget, $type).'", "'.$type.'", null, 1]');
   
   echo '
   <h4> </h4>
   <div id="inventory-preview-box"></div>
   <div id="inventory-preview-place" class="clearfix">
    <div class="clearfix"><a href="#" class="new-button" id="inventory-place"><b>Place</b><i></i></a></div>
   </div>';
  }
  else if($mode == 'place_sticker')
  {
   $query = $db->simple_select("profileinventory", "message", "fid = '".$stickerid."' AND type = '1'", array("limit" => 1));
   
   if($db->num_rows($query) > 0)
   {
    $results = $db->fetch_array($query);
     
    $db->insert_query("profilestickers", array('message' => htmlspecialchars_uni($results['message']), 'type' => '1', 'subtype' => '0', 'pid' => $myid, 'x' => '10', 'y' => '10', 'z' => $z));
    
    $query = $db->simple_select("profilestickers", "fid, message, z", "pid = '".$myid."' AND message = '".htmlspecialchars_uni($results['message'])."' AND type = '1'", array("order_by" => "fid DESC", "limit" => 1));
    
    $results = $db->fetch_array($query);
    
    header('X-JSON: ['.$results['fid'].','.$results['fid'].']');
    
    echo '<div class="movable sticker '.$results['message'].'" style="left: 10px; top: 10px; z-index: '.$results['z'].'" id="sticker-'.$results['fid'].'">
              <img src="'.$bburl.'/web-gallery/images/myhabbo/icon_edit.gif" class="edit-button" id="sticker-' . $results['fid'] . '-edit" />
              <script type="text/javascript">
                Event.observe(\'sticker-'.$results['fid'].'-edit\', \'click\', function(e) { openEditMenu(e, '.$results['fid'].', \'sticker\', \'sticker-'.$results['fid'].'-edit\'); }, false);
              </script>
              </div>';
   }
  }



Made one slight change



10000% performance increase :lol:

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




Here's something different, it actually turned out better than I expected. The green does "pop"

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




I'm just going to leave this here, it's for my own personal use as the revision of holocms I was using to get information from, didn't have this

Code:
<div class="habblet-container">
 <div class="cbb clearfix red"> 
  <h2 class="title">What's going on?</h2> 
  <div id="hotcampaigns-habblet-list-container"> 
   <ul id="hotcampaigns-habblet-list"> 
    <li class=""> 
     <div class="hotcampaign-container"> 
      <a href="">
      <img src="" align="left" alt="" /></a> 
      <h3>'</h3> 
      <p></p> 
      <p class="link"><a href="">Go there »</a></p> 
     </div> 
    </li> 
   </ul>
  </div>
 </div>
</div>
<script type="text/javascript">if (!$(document.body).hasClassName('process-template')) { Rounder.init(); }</script>
#hotcampaigns-habblet-list-container {
 padding:5px 5px 0 5px;
}
#hotcampaigns-habblet-list-container p {
 padding:5px
}
#hotcampaigns-habblet-list {
list-style-type:none;
margin:0;
padding:0
}
#hotcampaigns-habblet-list li {
float:left;
clear:both;
width:100%
}
#hotcampaigns-habblet-list li div.hotcampaign-container {
padding:5px 10px
}
#hotcampaigns-habblet-list li.even:hover {background-color:#dceafa}#hotcampaigns-habblet-list li.odd:hover{background-color:#f1f8ff}#hotcampaigns-habblet-list li p.link{margin:0;padding:0;text-align:right}#hotcampaigns-habblet-list li p.link a{color:#399001}#hotcampaigns-habblet-list li p{margin:0;padding:0}#hotcampaigns-habblet-list li h3{font-size:13px;margin:5px 0 0 0;padding:0}#hotcampaigns-habblet-list li img{margin:5px 5px 5px 0}#avatar-selector-habblet{padding-top:5px}#avatar-selector-habblet li{height:64px}




I'm also going to leave this link here to remind myself what I'm going to use this for!

https://github.com/mybb/mybb/blob/mybb_1820/admin/modules/user/group_promotions.php#L37



I've just made an executive decision for this project, I am removing the credits tab



I needed more colour tabs

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




I've asked myself, do I really want tags and the answer was no



I haven't downloaded the plugin, but this will probably be the plugin for habbo club:

https://community.mybb.com/mods.php?action=view&pid=458 (It looks very promising from the description). Plus it saves me writing up my own plugin, why reinvent the wheel when it's already done for you (something along those lines)




This also looks promising, as a contender for habbo club subscriptions

https://community.mybb.com/mods.php?action=view&pid=35



I don't think I'll need to make anymore changes to the memeber profiles javascript files, I am pretty happy with them, one less thing to do



My intention was that I wasn't going to add boardstats/birthdays/who's online to the personal page, but it is personal information for the user. Plus it fills out the webpage more :tongue:

rBEjsXv - 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
I will be removing tags in its entirety from the build, that means everything tag related (html, js, css) will be removed because tags do not exist in Habbo's current format.



I won't be implementing groups because Habbo's current format there is no way to access the group page on their website




Initially I was going to implement groups, but it doesn't make sense if I'm aiming to use this cms/mybb on current Habbo emulation




Before I continue the project for the 2009 theme/templates, I am going to remove any code that isn't/or won't be used to save up resources and performance




Once I'm satisfied with the results I'll continue the push on with development






Updates!






When I changed the theme over from the default mybb theme, I broke a script that would redirect you back to the page you were on when logging in, I have now fixed that and it's working as intended.






I have updated boardstats/forum statistics/who's online/birthdays to this:




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




If someone could hook me up with icons for board statistics, that would be great. I'd just need them to be relatively small (10x10 to 15x15) and them all being the same size.




- - - Updated - - -




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




Subnavi looking tiny




- - - Updated - - -




Things to remove:




Code:
[COLOR=#222222]
[/COLOR][COLOR=#222222]     <li id="mygroups"><a href="#"><span>My Groups</span></a><span class="r"></span></li>

     <li id="myrooms"><a href="#"><span>My Rooms</span></a><span class="r"></span></li>

[/COLOR]






- - - Updated - - -




Things to remove and fix:




Code:
[COLOR=#222222]
[/COLOR][COLOR=#222222]<a [B]onclick="openOrFocusHelp(this); return false"[/B] href="http://192.168.1.219/mybb/misc.php?action=help" [B]target="habbohelp"[/B]>Help</a>

[/COLOR]






- - - Updated - - -




CSS (ill check if the images are used anywhere else, otherwise they're taking a hike)




Code:
[COLOR=#222222]
[/COLOR][COLOR=#222222]#qtab-container-myrooms p.create-room, #qtab-container-mygroups p.create-group, 



#qtab-container-myrooms p.create-room a, #qtab-container-mygroups p.create-group a {

 padding: 0 21px 2px 0;

 background: transparent url(../images/myhabbo_icons.png) no-repeat 100% -236px;

}



div.favourite-group, div.owned-group, div.admin-group, #quickmenu-groups li a.group-room,

#promogroups-habblet-list-container a.group-room {

 display: block;

    float: right;

    width: 16px;

    height: 16px;

    background: transparent url(../images/info_icons.png) no-repeat;

}



div.favourite-group { background-position: 100% -433px; }

div.owned-group { background-position: 100% -480px; }

div.admin-group { background-position: 100% -528px; }

#quickmenu-groups li a.group-room, #promogroups-habblet-list-container a.group-room { background-position: 0 -800px; width: 19px; }

#promogroups-habblet-list-container a.group-room { margin-top: 15px; width: 24px; }





[/COLOR]






- - - Updated - - -




I figured I'd post this boring stuff because it's a part of the development and you should all be aware how much effort I'm putting into this development and
hopefully
​it'll inspire at least one of you



- - - Updated - - -




Need editing: You thought you were safe?! HA!!!!!!




Code:
[COLOR=#222222]
[/COLOR][COLOR=#222222]HabboView.add(function() {

 if (document.habboLoggedIn && $("subnavi-user")) {

  var B = new QuickMenu();

  var A = $A([

   ["myfriends", "habblet/quickmenu.php?key=friends_all"],

   ["mygroups", "habblet/quickmenu.php?key=groups"],

   ["myrooms", "habblet/quickmenu.php?key=rooms"]

  ]);

  A.each(function(C) {

   B.add($(C[0]), function(D) {

    var E = C[1];

    Element.wait(D);

    new Ajax.Updater(D, E, {

     onComplete: function() {

      new QuickMenuListPaging(C[0], E)

     }

    })

   })

  });

  Event.observe(document.body, "click", function(C) {

   B.closeContainer()

  })

 }

});



HabboView.add(function() {

    if (document.habboLoggedIn && $("subnavi-user")) {

        var B = new QuickMenu();

        var A = $A([

            ["myfriends", "habblet/ajax_habblet/quickmenu.php?key=friends_all"],

            ["mygroups", "habblet/ajax_habblet/quickmenu.php?key=groups"],

            ["myrooms", "habblet/ajax_habblet/quickmenu.php?key=rooms"]

        ]);

        A.each(function(C) {

            B.add($(C[0]), function(D) {

                var E = C[1];

                Element.wait(D);

                new Ajax.Updater(D, E, {

                    onComplete: function() {

                        new QuickMenuListPaging(C[0], E)

                    }

                })

            })

        });

        Event.observe(document.body, "click", function(C) {

            B.closeContainer()

        })

    }

});

[/COLOR]






- - - Updated - - -




I'll leave the script as an array, incase people want to add other quickmenus in the future




- - - Updated - - -




This also needs removing




Code:
[COLOR=#222222]
[/COLOR][COLOR=#222222]function openOrFocusHelp(C) {

 var E = (C.href ? C.href : C);

 var D = HabboClient._openEmptyHabboWindow("habbohelp");

 var B = false;

 try {

  B = (D.habboHelp)

 } catch (A) {}

 if (B) {

  D.focus()

 } else {

  D.location.href = E;

  D.focus()

 }

}

[/COLOR]



No longer need this as it was used for quickmenu

Code:
function roomForward(C, B, A) {
 HabboClient.roomForward(C, B, A)
}




Anyway you guys get the point :lol:



I can't help myself, here's a juicy script that needs removing: tags

Code:
var TagHelper = Class.create();
TagHelper.initialized = false;
TagHelper.init = function(A) {
 if (TagHelper.initialized) {
  return
 }
 TagHelper.initialized = true;
 TagHelper.loggedInAccountId = A;
 TagHelper.bindEventsToTagLists()
};
TagHelper.addFormTagToMe = function() {
 var A = $("add-tag-input");
 TagHelper.addThisTagToMe($F(A), true);
 Form.Element.clear(A)
};
TagHelper.bindEventsToTagLists = function() {
 var A = function(B) {
  TagHelper.tagListClicked(B, TagHelper.loggedInAccountId)
 };
 $$(".tag-list.make-clickable").each(function(B) {
  Event.observe(B, "click", A);
  Element.removeClassName(B, "make-clickable")
 })
};
TagHelper.setTexts = function(A) {
 TagHelper.options = A
};
TagHelper.tagListClicked = function(E) {
 var D = Event.element(E);
 var B = Element.hasClassName(D, "tag-add-link");
 var A = Element.hasClassName(D, "tag-remove-link");
 if (B || A) {
  var F = Element.up(D, ".tag-list li");
  if (!F) {
   return
  }
  var C = TagHelper.findTagNameForContainer(F);
  Event.stop(E);
  if (B) {
   TagHelper.addThisTagToMe(C, true)
  } else {
   TagHelper.removeThisTagFromMe(C)
  }
 }
};
TagHelper.findTagNameForContainer = function(A) {
 var B = Element.down(A, ".tag");
 if (!B) {
  return null
 }
 return B.innerHTML.strip()
};
TagHelper.addThisTagToMe = function(B, C, A) {
 if (typeof(A) == "undefined") {
  A = {}
 }
 new Ajax.Request("/myhabbo/tag/add", {
  parameters: "accountId=" + encodeURIComponent(TagHelper.loggedInAccountId) + "&tagName=" + encodeURIComponent(B),
  onSuccess: function(E) {
   var D = E.responseText;
   if (D == "valid" && C) {
    $$(".tag-list li").each(function(F) {
     if (TagHelper.findTagNameForContainer(F) == B) {
      var H = Element.down(F, ".tag-add-link");
      var G = $$(".tag-remove-link").first();
      H.title = G ? G.title : "";
      H.removeClassName("tag-add-link").addClassName("tag-remove-link")
     }
    })
   } else {
    if (D == "taglimit") {
     Dialog.showInfoDialog("tag-error-dialog", TagHelper.options.tagLimitText, TagHelper.options.buttonText, null)
    } else {
     if (D == "invalidtag") {
      Dialog.showInfoDialog("tag-error-dialog", TagHelper.options.invalidTagText, TagHelper.options.buttonText, null)
     }
    }
   }
   if (D == "valid" || D == "") {
    if (C) {
     TagHelper.reloadMyTagsList()
    } else {
     TagHelper.reloadSearchBox(B, 1)
    }
    if (typeof(A.onSuccess) == "function") {
     A.onSuccess()
    }
   }
  }
 })
};
TagHelper.reloadSearchBox = function(A, B) {
 if ($("tag-search-habblet-container")) {
  new Ajax.Updater($("tag-search-habblet-container"), "/habblet/ajax/tagsearch", {
   method: "post",
   parameters: "tag=" + A + "&pageNumber=" + B,
   evalScripts: true
  })
 }
};
TagHelper.removeThisTagFromMe = function(A) {
 new Ajax.Request("/myhabbo/tag/remove", {
  parameters: "accountId=" + encodeURIComponent(TagHelper.loggedInAccountId) + "&tagName=" + encodeURIComponent(A),
  onSuccess: function(C) {
   var B = function(D) {
    $$(".tag-list li").each(function(E) {
     if (TagHelper.findTagNameForContainer(E) == A) {
      var G = Element.down(E, ".tag-remove-link");
      var F = $$(".tag-add-link").first();
      if (F) {
       G.title = F.title || "";
       G.removeClassName("tag-remove-link").addClassName("tag-add-link")
      }
     }
    })
   };
   TagHelper.reloadMyTagsList({
    onSuccess: B
   })
  }
 })
};
TagHelper.reloadMyTagsList = function(B) {
 var A = {
  evalScripts: true
 };
 Object.extend(A, B);
 new Ajax.Updater($("my-tags-list"), "/habblet/mytagslist", A)
};
TagHelper.matchFriend = function() {
 var A = $F("tag-match-friend");
 if (A) {
  new Ajax.Updater($("tag-match-result"), habboReqPath + "/habblet/ajax/tagmatch", {
   parameters: {
    friendName: A
   },
   onComplete: function(D) {
    var C = $("tag-match-value");
    if (C) {
     var B = parseInt(C.innerHTML, 10);
     if (typeof TagHelper.CountEffect == "undefined") {
      $("tag-match-value-display").innerHTML = B + " %";
      Element.show("tag-match-slogan")
     } else {
      var E;
      if (B > 0) {
       E = 1.5
      } else {
       E = 0.1
      }
      new TagHelper.CountEffect("tag-match-value-display", {
       duration: E,
       transition: Effect.Transitions.sinoidal,
       from: 0,
       to: B,
       afterFinish: function() {
        Effect.Appear("tag-match-slogan", {
         duration: 1
        })
       }
      })
     }
    }
   }
  })
 }
};
var TagFight = Class.create();
TagFight.init = function() {
 if ($F("tag1") && $F("tag2")) {
  TagFight.start()
 } else {
  return false
 }
};
TagFight.start = function() {
 $("fightForm").style.display = "none";
 $("tag-fight-button").style.display = "none";
 $("fightanimation").src = habboStaticFilePath + "/images/tagfight/tagfight_loop.gif";
 $("fight-process").style.display = "block";
 setTimeout("TagFight.run()", 3000)
};
TagFight.run = function() {
 new Ajax.Updater("fightResults", "/habblet/ajax/tagfight", {
  method: "post",
  parameters: "tag1=" + $F("tag1") + "&tag2=" + $F("tag2"),
  onComplete: function() {
   $("fight-process").style.display = "none";
   $("fightForm").style.display = "none";
   $("tag-fight-button-new").style.display = "block"
  }
 })
};
TagFight.newFight = function() {
 $("fight-process").style.display = "none";
 $("fightForm").style.display = "block";
 $("fightResultCount").style.display = "none";
 $("tag-fight-button").style.display = "block";
 $("tag-fight-button-new").style.display = "none";
 $("fightanimation").src = habboStaticFilePath + "/images/tagfight/tagfight_start.gif";
 $("tag1").value = "";
 $("tag2").value = ""
};




Removing:

Code:
var HabbletGroupPaging = Class.create(HabbletPaging, {
    initialize: function($super, A) {
        this.setOptions({
            contentElementId: "groups-habblet-list-container",
            pagingElementId: "groups-habblet-list-container-list-paging",
            pagingListLinkClass: "groups-habblet-list-container-list-paging-link"
        });
        $super(A)
    }
});

Code:
var HighscoreHabblet = Class.create();
HighscoreHabblet.prototype = {
    initialize: function(A) {
        this.habbletId = A;
        this.containerEl = $("highscores-habblet-list-container-" + A);
        this._setupPaging();
        this._setupGameLinks()
    },
    _setupPaging: function() {
        if ($("habblet-paging-" + this.habbletId)) {
            Event.observe($("habblet-paging-" + this.habbletId), "click", function(A) {
                Event.stop(A);
                this._handlePagingClick(A)
            }.bind(this))
        }
    },
    _handlePagingClick: function(D) {
        var C = Event.findElement(D, "a");
        if (Element.hasClassName(C, "list-paging-link")) {
            var A = $F(this.habbletId + "-pageNumber");
            var B = $F(this.habbletId + "-gameId");
            switch (C.id.split("-").last()) {
                case "next":
                    A++;
                    break;
                case "previous":
                    A--;
                    break
            }
            this._updateContent(A, B)
        }
    },
    _setupGameLinks: function() {
        Event.observe($("highscores-habblet-games-" + this.habbletId), "click", function(A) {
            Event.stop(A);
            this._handleGameLinkClick(A)
        }.bind(this))
    },
    _handleGameLinkClick: function(C) {
        var B = Event.findElement(C, "a");
        if (Element.hasClassName(B, "highscores-habblet-game-link")) {
            var A = B.id.split("-").last();
            this._updateContent(0, A)
        }
    },
    _updateContent: function(A, B) {
        new Ajax.Updater(this.containerEl, habboReqPath + "/habblet/personalhighscores", {
            method: "post",
            parameters: {
                pageNumber: A,
                gameId: B,
                hid: this.habbletId
            },
            onComplete: function() {
                this._setupPaging();
                this._setupGameLinks()
            }.bind(this)
        })
    }
};
var BestExpsHabblet = Class.create();
BestExpsHabblet.prototype = {
    initialize: function(A) {
        this.habbletId = A;
        this.containerEl = $("best-exps-habblet-list-container-" + A);
        this._setupTypeLinks();
        this._setupOffsetLinks()
    },
    _setupTypeLinks: function() {
        Event.observe($("best-exps-habblet-types-" + this.habbletId), "click", function(A) {
            Event.stop(A);
            this._handleTypeLinkClick(A)
        }.bind(this))
    },
    _setupOffsetLinks: function() {
        var A = $F(this.habbletId + "-type");
        if (A == "alltime") {
            return
        }
        Event.observe($("best-exps-habblet-offset-" + this.habbletId), "click", function(B) {
            Event.stop(B);
            this._handleOffsetLinkClick(B)
        }.bind(this))
    },
    _handleTypeLinkClick: function(C) {
        var B = Event.findElement(C, "a");
        if (Element.hasClassName(B, "best-exps-habblet-type-link")) {
            var A = B.id.split("-").last();
            this._updateContent(A, 0)
        }
    },
    _handleOffsetLinkClick: function(C) {
        var B = Event.findElement(C, "a");
        if (Element.hasClassName(B, "best-exps-habblet-offset-link")) {
            var D = B.id.split("-").last();
            var A = $F(this.habbletId + "-type");
            this._updateContent(A, -D)
        }
    },
    _updateContent: function(A, B) {
        new Ajax.Updater(this.containerEl, habboReqPath + "/habblet/bestexps", {
            method: "post",
            parameters: {
                type: A,
                offset: B,
                hid: this.habbletId
            },
            onComplete: function() {
                this._setupTypeLinks();
                this._setupOffsetLinks()
            }.bind(this)
        })
    }
};
var HallOfFameHabblet = Class.create();
HallOfFameHabblet.prototype = {
    initialize: function(A) {
        this.habbletId = A;
        this.containerEl = $("hall-of-fame-habblet-list-container-" + A);
        this._setupGameLinks()
    },
    _setupGameLinks: function() {
        Event.observe($("hall-of-fame-habblet-games-" + this.habbletId), "click", function(A) {
            Event.stop(A);
            this._handleGameLinkClick(A)
        }.bind(this))
    },
    _handleGameLinkClick: function(C) {
        var B = Event.findElement(C, "a");
        if (Element.hasClassName(B, "hall-of-fame-habblet-game-link")) {
            var A = B.id.split("-").last();
            this._updateContent(A, 0)
        }
    },
    _updateContent: function(A) {
        new Ajax.Updater(this.containerEl, habboReqPath + "/habblet/halloffame", {
            method: "post",
            parameters: {
                game: A,
                hid: this.habbletId
            },
            onComplete: function() {
                this._setupGameLinks()
            }.bind(this)
        })
    }
};

Code:
Code:
var RoomSelectionHabblet = {
    initClosableHabblet: function() {
        $("habblet-close-roomselection").observe("click", function(A) {
            RoomSelectionHabblet.showConfirmation()
        })
    },
    hideHabblet: function() {
        new Ajax.Request(habboReqPath + "habblet/ajax_roomselectionHide.php");
        Effect.Fade("roomselection", {
            afterFinish: function() {
                $("roomselection").remove()
            }
        })
    },
    showConfirmation: function() {
        Overlay.show();
        var A = Dialog.createDialog("roomselection-dialog", L10N.get("roomselection.hide.title"), false, false, false, RoomSelectionHabblet.hideConfirmation);
        Dialog.setAsWaitDialog(A);
        Dialog.makeDialogDraggable(A);
        Dialog.moveDialogToCenter(A);
        new Ajax.Request(habboReqPath + "habblet/ajax_roomselectionConfirm.php", {
            onComplete: function(B) {
                $("roomselection-dialog-body").update(B.responseText);
                $("roomselection-cancel").observe("click", function(C) {
                    Event.stop(C);
                    RoomSelectionHabblet.hideConfirmation()
                });
                if ( !! $("roomselection-hide")) {
                    $("roomselection-hide").observe("click", function(C) {
                        Event.stop(C);
                        RoomSelectionHabblet.hideConfirmation();
                        RoomSelectionHabblet.hideHabblet()
                    })
                }
            }
        })
    },
    hideConfirmation: function() {
        $("roomselection-dialog").remove();
        Overlay.hide()
    },
    create: function(B, D) {
        var A = false;
        try {
            A = window.habboClient
        } catch (C) {}
        if (A) {
            window.location.href = B;
            return false
        }
        if (document.habboLoggedIn) {
            new Ajax.Request(habboReqPath + "habblet/ajax_roomselectionCreate.php", {
                parameters: {
                    roomType: D
                }
            })
        }
        HabboClient.openOrFocus(B);
        if ($("roomselection-plp-intro")) {
            $("roomselection-plp", "habblet-close-roomselection").invoke("hide");
            $("roomselection-plp-intro").update(L10N.get("roomselection.old_user.done"))
        }
        return false
    }
};

Code:
Code:
var GiftQueueHabblet = {
    init: function(A) {
        GiftQueueHabblet.container = $("gift-countdown");
        if ( !! GiftQueueHabblet.container) {
            new PrettyTimer(A, function(B) {
                GiftQueueHabblet.container.update(B)
            }, {
                showDays: false,
                showMeaningfulOnly: false,
                localizations: {
                    hours: L10N.get("time.hours") + " ",
                    minutes: L10N.get("time.minutes") + " ",
                    seconds: L10N.get("time.seconds")
                },
                endCallback: function() {
                    GiftQueueHabblet.reload()
                }
            })
        }
    },
    initClosableHabblet: function() {
        $("habblet-close-giftqueue").setStyle({
            display: "inline"
        });
        $("habblet-close-giftqueue").observe("click", function(A) {
            GiftQueueHabblet.hide()
        })
    },
    reload: function() {
        new Ajax.Request(habboReqPath + "habblet/ajax_nextgift.php", {
            onComplete: function(B, A) {
                $("gift-container").update(B.responseText);
                GiftQueueHabblet.init(parseInt(A))
            }
        })
    },
    hide: function() {
        new Ajax.Request(habboReqPath + "habblet/ajax_roomselectionHide.php");
        Effect.Fade("giftqueue", {
            afterFinish: function() {
                $("giftqueue").remove()
            }
        })
    }
};
var CurrentRoomEvents = {
    init: function() {
        $("event-category").observe("change", function(A) {
            Element.wait($("event-list"));
            new Ajax.Updater("event-list", "habblet/ajax_load_events.php", {
                parameters: {
                    eventTypeId: $F("event-category")
                },
                onComplete: function() {
                    CurrentRoomEvents.initListItems()
                }
            })
        });
        CurrentRoomEvents.initListItems()
    },
    initListItems: function() {
        $$("#current-events ul.habblet-list").each(function(A) {
            Event.observe(A, "click", function(C) {
                var D = Event.element(C);
                if (D.tagName.toUpperCase() == "A") {
                    return
                }
                Event.stop(C);
                if (!$(D).match("li")) {
                    D = $(D).up("li")
                }
                var B = $(D).readAttribute("roomid");
                if (B) {
                    HabboClient.roomForward("client.php?forwardId=2&roomId=" + B, B, "private")
                }
            })
        })
    }
};

Code:
Code:
HabboView.add(HabbletTabber.init);
var TagHelper = Class.create();
TagHelper.initialized = false;
TagHelper.init = function(A) {
    if (TagHelper.initialized) {
        return
    }
    TagHelper.initialized = true;
    TagHelper.loggedInAccountId = A;
    TagHelper.bindEventsToTagLists()
};
TagHelper.addFormTagToMe = function() {
    var A = $("add-tag-input");
    TagHelper.addThisTagToMe($F(A), true);
    Form.Element.clear(A)
};
TagHelper.bindEventsToTagLists = function() {
    var A = function(B) {
        TagHelper.tagListClicked(B, TagHelper.loggedInAccountId)
    };
    $$(".tag-list.make-clickable").each(function(B) {
        Event.observe(B, "click", A);
        Element.removeClassName(B, "make-clickable")
    })
};
TagHelper.setTexts = function(A) {
    TagHelper.options = A
};
TagHelper.tagListClicked = function(E) {
    var D = Event.element(E);
    var B = Element.hasClassName(D, "tag-add-link");
    var A = Element.hasClassName(D, "tag-remove-link");
    if (B || A) {
        var F = Element.up(D, ".tag-list li");
        if (!F) {
            return
        }
        var C = TagHelper.findTagNameForContainer(F);
        Event.stop(E);
        if (B) {
            TagHelper.addThisTagToMe(C, true)
        } else {
            TagHelper.removeThisTagFromMe(C)
        }
    }
};
TagHelper.findTagNameForContainer = function(A) {
    var B = Element.down(A, ".tag");
    if (!B) {
        return null
    }
    return B.innerHTML.strip()
};
TagHelper.addThisTagToMe = function(B, C, A) {
    if (typeof(A) == "undefined") {
        A = {}
    }
    new Ajax.Request("habblet/tags_ajax.php?key=add", {
        parameters: "accountId=" + encodeURIComponent(TagHelper.loggedInAccountId) + "&tagName=" + encodeURIComponent(B),
        onSuccess: function(E) {
            var D = E.responseText;
            if (D == "valid" && C) {
                $$(".tag-list li").each(function(F) {
                    if (TagHelper.findTagNameForContainer(F) == B) {
                        var H = Element.down(F, ".tag-add-link");
                        var G = $$(".tag-remove-link").first();
                        H.title = G ? G.title : "";
                        H.removeClassName("tag-add-link").addClassName("tag-remove-link")
                    }
                })
            } else {
                if (D == "taglimit") {
                    Dialog.showInfoDialog("tag-error-dialog", TagHelper.options.tagLimitText, TagHelper.options.buttonText, null)
                } else {
                    if (D == "invalidtag") {
                        Dialog.showInfoDialog("tag-error-dialog", TagHelper.options.invalidTagText, TagHelper.options.buttonText, null)
                    }
                }
            } if (D == "valid" || D == "") {
                if (C) {
                    TagHelper.reloadMyTagsList()
                } else {
                    TagHelper.reloadSearchBox(B, 1)
                } if (typeof(A.onSuccess) == "function") {
                    A.onSuccess()
                }
            }
        }
    })
};
TagHelper.reloadSearchBox = function(A, B) {
    if ($("tag-search-habblet-container")) {
        new Ajax.Updater($("tag-search-habblet-container"), "/habblet/ajax/tagsearch", {
            method: "post",
            parameters: "tag=" + A + "&pageNumber=" + B,
            evalScripts: true
        })
    }
};
TagHelper.removeThisTagFromMe = function(A) {
    new Ajax.Request("habblet/tags_ajax.php?key=remove", {
        parameters: "accountId=" + encodeURIComponent(TagHelper.loggedInAccountId) + "&tagName=" + encodeURIComponent(A),
        onSuccess: function(C) {
            var B = function(D) {
                $$(".tag-list li").each(function(E) {
                    if (TagHelper.findTagNameForContainer(E) == A) {
                        var G = Element.down(E, ".tag-remove-link");
                        var F = $$(".tag-add-link").first();
                        if (F) {
                            G.title = F.title || "";
                            G.removeClassName("tag-remove-link").addClassName("tag-add-link")
                        }
                    }
                })
            };
            TagHelper.reloadMyTagsList({
                onSuccess: B
            })
        }
    })
};
TagHelper.reloadMyTagsList = function(B) {
    var A = {
        evalScripts: true
    };
    Object.extend(A, B);
    new Ajax.Updater($("my-tags-list"), "habblet/tags_ajax.php?key=mytagslist", A)
};
TagHelper.matchFriend = function() {
    var A = $F("tag-match-friend");
    if (A) {
        new Ajax.Updater($("tag-match-result"), habboReqPath + "/habblet/ajax/tagmatch", {
            parameters: {
                friendName: A
            },
            onComplete: function(D) {
                var C = $("tag-match-value");
                if (C) {
                    var B = parseInt(C.innerHTML, 10);
                    if (typeof TagHelper.CountEffect == "undefined") {
                        $("tag-match-value-display").innerHTML = B + " %";
                        Element.show("tag-match-slogan")
                    } else {
                        var E;
                        if (B > 0) {
                            E = 1.5
                        } else {
                            E = 0.1
                        }
                        new TagHelper.CountEffect("tag-match-value-display", {
                            duration: E,
                            transition: Effect.Transitions.sinoidal,
                            from: 0,
                            to: B,
                            afterFinish: function() {
                                Effect.Appear("tag-match-slogan", {
                                    duration: 1
                                })
                            }
                        })
                    }
                }
            }
        })
    }
};
var TagFight = Class.create();
TagFight.init = function() {
    if ($F("tag1") && $F("tag2")) {
        TagFight.start()
    } else {
        return false
    }
};
TagFight.start = function() {
    $("fightForm").style.display = "none";
    $("tag-fight-button").style.display = "none";
    $("fightanimation").src = habboStaticFilePath + "/images/tagfight/tagfight_loop.gif";
    $("fight-process").style.display = "block";
    setTimeout("TagFight.run()", 3000)
};
TagFight.run = function() {
    new Ajax.Updater("fightResults", "habblet/ajax_tagfight.php", {
        method: "post",
        parameters: "tag1=" + $F("tag1") + "&tag2=" + $F("tag2"),
        onComplete: function() {
            $("fight-process").style.display = "none";
            $("fightForm").style.display = "none";
            $("tag-fight-button-new").style.display = "block"
        }
    })
};
TagFight.newFight = function() {
    $("fight-process").style.display = "none";
    $("fightForm").style.display = "block";
    $("fightResultCount").style.display = "none";
    $("tag-fight-button").style.display = "block";
    $("tag-fight-button-new").style.display = "none";
    $("fightanimation").src = habboStaticFilePath + "/images/tagfight/tagfight_start.gif";
    $("tag1").value = "";
    $("tag2").value = ""
};

Code:
Code:
var GroupUtils = {
    validateGroupElements: function(C, A, E) {
        var D = $(C);
        if (D.value.length >= A) {
            D.value = D.value.substring(0, A);
            $(C + "_message_error").innerHTML = E;
            $(C + "_message_error").style.display = "block"
        } else {
            $(C + "_message_error").innerHTML = "";
            $(C + "_message_error").style.display = "none"
        } if ($(C + "-counter")) {
            var B = A - D.value.length;
            $(C + "-counter").value = B
        }
    }
};
var GroupPurchase = function() {
    var A = null;
    var C = null;
    var B = function(D) {
        Dialog.setAsWaitDialog(A);
        new Ajax.Request("habblet/ajax_grouppurchase.php" + D, {
            parameters: C,
            onComplete: function(F, E) {
                Dialog.setDialogBody(A, F.responseText)
            }
        })
    };
    return {
        open: function() {
            A = Dialog.createDialog("group_purchase_form", L10N.get("purchase.group.title"), 9001, 0, -1000, GroupPurchase.close);
            Dialog.setAsWaitDialog(A);
            Dialog.moveDialogToCenter(A);
            Dialog.makeDialogDraggable(A);
            Overlay.show();
            new Ajax.Request("habblet/ajax_grouppurchase.php", {
                onComplete: function(E, D) {
                    Dialog.setDialogBody(A, E.responseText)
                }
            })
        },
        close: function(D) {
            if ( !! D) {
                Event.stop(D)
            }
            $("group_purchase_form").remove();
            Overlay.hide();
            A = null;
            C = null
        },
        confirm: function() {
            C = {
                name: $F("group_name"),
                description: $F("group_description")
            };
            B("?do=purchase_confirmation")
        },
        purchase: function() {
            B("purchase_ajax")
        }
    }
}();


When removing scripts/code, you need to becareful, cause if you remove something you shouldn't, everything will break![SUB][/SUB]



When deleting code that could potentitally break your website, do it in tiny steps, don't go crazy like me and delete everything you see in sight :D



Ok next step would be for me to review the css/html/images I don't need.

Now this part is a lot more difficult than just deleting scripts because these pieces of code may not be used on any pages that I've worked on so far, but they may be used on others - So this can be time consuming!


This is why you should always comment on your code :D



A good place to start is to find things what you're deleting, as you can see I've already found lots of information that's critical for me to remove everything regarding groups/tags/etc

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




Don't just delete everything, write down the names of files and folders that you will be deleting, then review the names and files with other files that you think may have used said files



I hope you guys have been inspired and maybe have learnt something today! :p:



I have made some changes to the referral/search plugin

The script was fairly pointless for referring a friend, you clicked a button and the textarea appeared. Let's just get straight to the point.

I've made some some CSS changes to search users, as you can see


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




When turning off referrals, we now get this:

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




New icons! I mean (thanks for your contributions :lol:)

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




Frank saves the day

S9YEdO9 - 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
I wanted to showcase this yesterday, but I messed it up.

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


Interactive staff team page

Showcases all your staff members

Create silly messages to reveal who they are and what they do

Only administrators can modify the page

If the user is in the correct usergroup, they will automatically be added to the staff page, you will just have to align them to how you see fit and add a stickie next to their name (or dont)

This is kind of like a group, but isn't

Administrators will always be in edit mode when browsing forum team



I may introduce a staff category into the store, so staff members get limited stickers/backgrounds that only they can use for the staff page
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
Can everyone edit their own message, or is it just a textbox that needs to be filled in by an admin?

As of right now, the administrator would have to add the messages (or don't), administrators have full control how they showcase their content



When searching for usernames, you now will be able to see the users formated username (admins get a crown)

CAUSE WHY NOT!

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




When comparing the 2006 theme/template to the 2009 theme/template, well the 2006 template/theme doesn't even compare to the functionality the 2009 theme/template has, so for today I will be doing the following:


* Creating a copy of current 2009 stylesheets and making a second theme for the 2009 templates.
* I'll be redesinging the 2009 theme to make it look like the 2006 theme while keeping the 2009 template the same. This way both themes get the same functionality, but looking totally different. I believe this is possible without having to changing any of the templates.

This is a good thing because I won't have to be working on 2 separate templates at the same time, which means a faster release and I'll still be releasing a 2006 theme and a 2009 theme as I said I would.

The downfall is that all current work on the 2006 theme/template is kind of redundant, but I can use the work I done so far to reference how I go about theming the 2006 theme.


Feedback is welcome and your input may change the way I do things



I found this in the revision of holocms I was using, this gives me an idea how 2006 homes looks (mainly the buttons and the store)

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




This is a development after all, so expect ugly. It gives you an idea how I process things and work through them though.


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




I have 0 modifications to the template, as you can see I was correct to think that it woruld work out :D



Now it's just a matter of tidying up the header, footer and making the content (plugins) match 2006 theme which should be easy to do!

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




Compromises:

Header won't be exactly like habbo's 2006 layout



Once I'm done editing the theme, no one would have ever known the difference :lol:



Functionality still the same; also stress testing with all those stickers :D

GKWliMX - 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
This header is posing a great challenge for me

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




Maybe it's just an alignment issue, maybe I just need to spread everything out a little more :?:



Pretty happy with the results, considering the limitations that have been put on me

I just need to redo buttons, change some colours to the appropriate 2006 theme and I'll probably leave it at that for the time being

Feedback is welcome!

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

Attachments

You must be registered for see attachments list
Elite Diviner
Joined
Apr 5, 2014
Messages
464
Reaction score
223
As someone who's never touched any kind of forum software before; I'm impressed with how much you've been able to do, and that it's even possible in what seems like a very old platform.

It's cool and unique :thumbup:
 
Newbie Spellweaver
Joined
Mar 2, 2007
Messages
70
Reaction score
38
As someone who's never touched any kind of forum software before; I'm impressed with how much you've been able to do, and that it's even possible in what seems like a very old platform.

It's cool and unique :thumbup:

The time I've spent using MYBB I have learnt a lot about the platform and my experience with coding has changed.


The things I dislike about MyBB is how you manage the themes (right now I'm not using the theme manager as it doesn't work for what I want it to do). In a couple of months though MyBB will be releasing 1.9 which will update their themes manager and a couple of other interesting things that I look forward to, hopefully they'll become relevant.

The template manager/plugins are amazing, I wouldn't change anything about them as they work pretty well (as you can see from my development)

The language system is very limiting, the mybb team know this as I've spoken to some of them and they want to overhaul it, which is a good thing.

The system itself is very stable, it's relatively fast, it doesn't slow down and it's secure.


The best thing about MyBB is that it's got an active community and it's FREE! The only limitation is yourself



I'm sick of trying to find things in this /web-gallery/ so I've made things much simpler and more organised.

I spend more time trying to find a javascript file, it's like playing cat and mouse, is it in /static/js/ or /js/, same with images/v2/styles/blababa

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




We lost a lot of stylesheets along the way, lets all give a moment of silence

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




Assets.css needs work (205KB!!!!)



Visual.js, libs.js and libs2.js should never be modified

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




727 of those files are /images/stickers/ lol

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




Minor adjustment to who's online

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




I would also like to change every .gif or any other terrible format into .png, eventually



HTML markup needs changing too into..

<header>
<nav>
<main>
<section>
<footer>



Do I really want to continue supporting internet explorer? IE6? :lol:



Sorry to those internet explorer users, you no longer are being supported by my project



I said not to modify visual.js, libs.js and libs2.js, but I am anyway




The removal van has come back
Code:
if (Prototype.Browser.Opera) {
 Element.Methods.getStyle = Element.Methods.getStyle.wrap(function(D, B, C) {
  switch (C) {
   case "left":
   case "top":
   case "right":
   case "bottom":
    if (D(B, "position") === "static") {
     return null
    }
   case "height":
   case "width":
    if (!Element.visible(B)) {
     return null
    }
    var E = parseInt(D(B, C), 10);
    if (E !== B["offset" + C.capitalize()]) {
     return E + "px"
    }
    var A;
    if (C === "height") {
     A = ["border-top-width", "padding-top", "padding-bottom", "border-bottom-width"]
    } else {
     A = ["border-left-width", "padding-left", "padding-right", "border-right-width"]
    }
    return A.inject(E, function(F, G) {
     var H = D(B, G);
     return H === null ? F : F - parseInt(H, 10)
    }) + "px";
   default:
    return D(B, C)
  }
 });
 Element.Methods.readAttribute = Element.Methods.readAttribute.wrap(function(C, A, B) {
  if (B === "title") {
   return A.title
  }
  return C(A, B)
 })
} else {
 if (Prototype.Browser.IE) {
  Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap(function(C, B) {
   B = $(B);
   var A = B.getStyle("position");
   if (A !== "static") {
    return C(B)
   }
   B.setStyle({
    position: "relative"
   });
   var D = C(B);
   B.setStyle({
    position: A
   });
   return D
  });
  $w("positionedOffset viewportOffset").each(function(A) {
   Element.Methods[A] = Element.Methods[A].wrap(function(E, C) {
    C = $(C);
    var B = C.getStyle("position");
    if (B !== "static") {
     return E(C)
    }
    var D = C.getOffsetParent();
    if (D && D.getStyle("position") === "fixed") {
     D.setStyle({
      zoom: 1
     })
    }
    C.setStyle({
     position: "relative"
    });
    var F = E(C);
    C.setStyle({
     position: B
    });
    return F
   })
  });
  Element.Methods.getStyle = function(A, B) {
   A = $(A);
   B = (B == "float" || B == "cssFloat") ? "styleFloat" : B.camelize();
   var C = A.style[B];
   if (!C && A.currentStyle) {
    C = A.currentStyle[B]
   }
   if (B == "opacity") {
    if (C = (A.getStyle("filter") || "").match(/alpha\(opacity=(.*)\)/)) {
     if (C[1]) {
      return parseFloat(C[1]) / 100
     }
    }
    return 1
   }
   if (C == "auto") {
    if ((B == "width" || B == "height") && (A.getStyle("display") != "none")) {
     return A["offset" + B.capitalize()] + "px"
    }
    return null
   }
   return C
  };
  Element.Methods.setOpacity = function(B, E) {
   function F(G) {
    return G.replace(/alpha\([^\)]*\)/gi, "")
   }
   B = $(B);
   var A = B.currentStyle;
   if ((A && !A.hasLayout) || (!A && B.style.zoom == "normal")) {
    B.style.zoom = 1
   }
   var D = B.getStyle("filter"),
    C = B.style;
   if (E == 1 || E === "") {
    (D = F(D)) ? C.filter = D: C.removeAttribute("filter");
    return B
   } else {
    if (E < 0.00001) {
     E = 0
    }
   }
   C.filter = F(D) + "alpha(opacity=" + (E * 100) + ")";
   return B
  };
  Element._attributeTranslations = {
   read: {
    names: {
     "class": "className",
     "for": "htmlFor"
    },
    values: {
     _getAttr: function(A, B) {
      return A.getAttribute(B, 2)
     },
     _getAttrNode: function(A, C) {
      var B = A.getAttributeNode(C);
      return B ? B.value : ""
     },
     _getEv: function(A, B) {
      B = A.getAttribute(B);
      return B ? B.toString().slice(23, -2) : null
     },
     _flag: function(A, B) {
      return $(A).hasAttribute(B) ? B : null
     },
     style: function(A) {
      return A.style.cssText.toLowerCase()
     },
     title: function(A) {
      return A.title
     }
    }
   }
  };
  Element._attributeTranslations.write = {
   names: Object.extend({
    cellpadding: "cellPadding",
    cellspacing: "cellSpacing"
   }, Element._attributeTranslations.read.names),
   values: {
    checked: function(A, B) {
     A.checked = !!B
    },
    style: function(A, B) {
     A.style.cssText = B ? B : ""
    }
   }
  };
  Element._attributeTranslations.has = {};
  $w("colSpan rowSpan vAlign dateTime accessKey tabIndex encType maxLength readOnly longDesc").each(function(A) {
   Element._attributeTranslations.write.names[A.toLowerCase()] = A;
   Element._attributeTranslations.has[A.toLowerCase()] = A
  });
  (function(A) {
   Object.extend(A, {
    href: A._getAttr,
    src: A._getAttr,
    type: A._getAttr,
    action: A._getAttrNode,
    disabled: A._flag,
    checked: A._flag,
    readonly: A._flag,
    multiple: A._flag,
    onload: A._getEv,
    onunload: A._getEv,
    onclick: A._getEv,
    ondblclick: A._getEv,
    onmousedown: A._getEv,
    onmouseup: A._getEv,
    onmouseover: A._getEv,
    onmousemove: A._getEv,
    onmouseout: A._getEv,
    onfocus: A._getEv,
    onblur: A._getEv,
    onkeypress: A._getEv,
    onkeydown: A._getEv,
    onkeyup: A._getEv,
    onsubmit: A._getEv,
    onreset: A._getEv,
    onselect: A._getEv,
    onchange: A._getEv
   })
  })(Element._attributeTranslations.read.values)
 } else {
  if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) {
   Element.Methods.setOpacity = function(A, B) {
    A = $(A);
    A.style.opacity = (B == 1) ? 0.999999 : (B === "") ? "" : (B < 0.00001) ? 0 : B;
    return A
   }
  } else {
   if (Prototype.Browser.WebKit) {
    Element.Methods.setOpacity = function(A, B) {
     A = $(A);
     A.style.opacity = (B == 1 || B === "") ? "" : (B < 0.00001) ? 0 : B;
     if (B == 1) {
      if (A.tagName == "IMG" && A.width) {
       A.width++;
       A.width--
      } else {
       try {
        var D = document.createTextNode(" ");
        A.appendChild(D);
        A.removeChild(D)
       } catch (C) {}
      }
     }
     return A
    };
    Element.Methods.cumulativeOffset = function(B) {
     var A = 0,
      C = 0;
     do {
      A += B.offsetTop || 0;
      C += B.offsetLeft || 0;
      if (B.offsetParent == document.body) {
       if (Element.getStyle(B, "position") == "absolute") {
        break
       }
      }
      B = B.offsetParent
     } while (B);
     return Element._returnOffset(C, A)
    }
   }
  }
 }
}
if (Prototype.Browser.IE || Prototype.Browser.Opera) {
 Element.Methods.update = function(B, C) {
  B = $(B);
  if (C && C.toElement) {
   C = C.toElement()
  }
  if (Object.isElement(C)) {
   return B.update().insert(C)
  }
  C = Object.toHTML(C);
  var A = B.tagName.toUpperCase();
  if (A in Element._insertionTranslations.tags) {
   $A(B.childNodes).each(function(D) {
    B.removeChild(D)
   });
   Element._getContentFromAnonymousElement(A, C.stripScripts()).each(function(D) {
    B.appendChild(D)
   })
  } else {
   B.innerHTML = C.stripScripts()
  }
  C.evalScripts.bind(C).defer();
  return B
 }
}




To be fair, I shouldn't be removing webkit



Updated SWFOBJECT from v1.5 to 2.3!



I'm pretty satisifed with the folder structure

A lot of irrelevant code has been removed, which was something I initially planned to do

Markup language, changing imagges from gif to png, sorting out /stickers/ is something I need to do, but is not a priority. The sooner I do them though, the better



Probably my imagination, but the website seems to load faster :lol:



No errors when validating the html markup :drool:

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




Removing

Code:
<script>var andSoItBegins = (new Date()).getTime();</script>

Not sure why it wasn't removed sooner...
 

Attachments

You must be registered for see attachments list
Back
Top