Item8701: Implement MakeUserRegistrationCustomizable
Priority: Enhancement
Current State: Closed
Released In: 1.1.0
Target Release: minor
MakeUserRegistrationCustomizable.
Implemented now with a new DefaultUserRegistration topic that is included as long as no UserRegistration topic exists in Main.
%IF{
"istopic '%USERSWEB%.%TOPIC%'"
then="$percntINCLUDE{$quot%USERSWEB%.%TOPIC%$quot}$percnt"
else="$percntINCLUDE{$quot%SYSTEMWEB%.Default%TOPIC%$quot}$percnt"
}%
<!--
The section above looks whether a custom user registration page exists in %USERSWEB% and includes it if it does; otherwise it includes DefaultUserRegistration.
To create a custom UserRegistration page yourself:
1. make a copy of this topic (DefaultUserRegistration) in your %SYSTEM% web
2. name the copy "UserRegistration"
3. copy it to %USERSWEB% (by default called 'Main')
-->
The syntax can be simplified when
INCLUDE
has a default parameter or fallback list syntax.
--
ArthurClemens - 13 Mar 2010
I think you did not fully test the page after having implemented it.
It is broken.
The IF statements that test for macros set in the topic do not work when INCLUDED in another topic so additional changes are required.
I am actually very puzzled that this kind of things work so inconsistantly. Why does IF work in the current topic context and the macro settings in the included so the two cannot work in unison?
--
KennethLavrsen - 19 Mar 2010
Set statements do not work for included topics. This cannot be fixed in this topic, it is a core bug or feature.
The solution for some of the macros would be to put the text directly inside the IF:
<!--
# optional row for login name, enabled by {Register}{AllowLoginName} option in =configure=
-->
%IF{"$ ALLOWLOGINNAME" then="<tr><td align=\"right\"> %MAKETEXT{"(how you log in) LoginName:"}% </td><td><input %NOREGISTRATION% type=\"text\" name=\"Twk1LoginName\" size=\"40\" class=\"foswikiInputField\" value=\"%REMOTE_USER%\" /> <span class=\"foswikiGrayText\">%MAKETEXT{"required"}%</span> </td></tr>"}%
But I don't have a solution for
NOREGISTRATION
that is used in all fields.
Perhaps a template based approach is better after all, just to bypass the technical limitations.
--
ArthurClemens - 19 Mar 2010
I found a fix that is acceptable.
Two of the settings were not really needed.
The NOREGISTRATION used everywhere could simply be defined in the
UserRegistration topic and used in the
INCLUDE. It is the only setting where this is required now.
The last setting was not used at all. Just old cruft.
--
KennethLavrsen - 28 Mar 2010
It works now.
--
ArthurClemens - 05 Apr 2010