diff -r d236dfa352cd bin/configure --- a/bin/configure Fri Sep 26 00:39:58 2008 +0200 +++ b/bin/configure Fri Sep 26 00:49:56 2008 +0200 @@ -493,6 +493,23 @@ sub _actionNext { TWiki::Configure::TWikiCfg::load($root, 1); $ui = _checkLoadUI('UPDATE', $root); + # Autocreate Home web if it doesn't exists yet + $TWiki::cfg{HomeWebName} =~ s/[^a-zA-Z0-9_]//g; + $TWiki::cfg{HomeWebName} =~ s/\b(\w)/\u$1/g; + if ($TWiki::cfg{HomeWebName}) { + require TWiki; + my %initialContext; + $initialContext{command_line} = 1; + my $user = $TWiki::cfg{SuperAdminGroup}; + my $session = new TWiki( "admin", $query, \%initialContext ); + if (!$session->{store}->webExists($TWiki::cfg{HomeWebName})) { + print "Creating home web \"$TWiki::cfg{HomeWebName}\""; + my $err = $session->{store}->createWeb($TWiki::cfg{SuperAdminGroup}, $TWiki::cfg{HomeWebName}, '_default', '' ); + if ($err) { + print "WARNING: Could not create Home web"; + } + } + } return 1 unless $ui; print $ui->ui($root, $valuer, \%updated); } diff -r d236dfa352cd bin/rest --- a/bin/rest Fri Sep 26 00:39:58 2008 +0200 +++ b/bin/rest Fri Sep 26 00:49:56 2008 +0200 @@ -86,7 +86,7 @@ else { else { # Point it somewhere innocent - $topic = $TWiki::cfg{UsersWebName} . '.' . $TWiki::cfg{HomeTopicName}; + $topic = $TWiki::cfg{HomeWebName} . '.' . $TWiki::cfg{HomeTopicName}; $query->param( -name => 'topic', -value => $topic ); } diff -r d236dfa352cd data/TWiki/SourceCode.txt --- a/data/TWiki/SourceCode.txt Fri Sep 26 00:39:58 2008 +0200 +++ b/data/TWiki/SourceCode.txt Fri Sep 26 00:49:56 2008 +0200 @@ -223,7 +223,7 @@ with CGI accelerators such as mod_perl. * =user= Unique user ID of logged-in user * =users= TWiki::Users singleton * =webName= Name of web found in URL path, or =web= URL parameter, - or {UsersWebName} + or {HomeWebName} diff -r d236dfa352cd data/TWiki/TWikiDotPm.txt --- a/data/TWiki/TWikiDotPm.txt Fri Sep 26 00:39:58 2008 +0200 +++ b/data/TWiki/TWikiDotPm.txt Fri Sep 26 00:49:56 2008 +0200 @@ -35,7 +35,7 @@ with CGI accelerators such as mod_perl. * =user= Unique user ID of logged-in user * =users= TWiki::Users singleton * =webName= Name of web found in URL path, or =web= URL parameter, - or {UsersWebName} + or {HomeWebName} %TOC% @@ -232,7 +232,7 @@ here) here) *WARNING* if there is no web specification (in the web or topic parameters) -the web defaults to $TWiki::cfg{UsersWebName}. If there is no topic +the web defaults to $TWiki::cfg{HomeWebName}. If there is no topic specification, or the topic is '0', the topic defaults to the web home topic name. diff -r d236dfa352cd data/TWiki/TWikiFuncDotPm.txt --- a/data/TWiki/TWikiFuncDotPm.txt Fri Sep 26 00:39:58 2008 +0200 +++ b/data/TWiki/TWikiFuncDotPm.txt Fri Sep 26 00:49:56 2008 +0200 @@ -362,6 +362,15 @@ Return: =$name= Name of tool, e.g. ='TWi *Since:* TWiki::Plugins::VERSION 1.000 (27 Feb 2001) +---+++ getHomeWebname( ) -> $name + +Get name of Home web as defined in TWiki.cfg + +Return: =$name= Name, e.g. ='Home'= + +*Since:* TWiki::Plugins::VERSION 1.000 (27 Feb 2001) + + ---+++ getMainWebname( ) -> $name Get name of Main web as defined in TWiki.cfg diff -r d236dfa352cd data/TWiki/VarHOMEWEB.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/TWiki/VarHOMEWEB.txt Fri Sep 26 00:49:56 2008 +0200 @@ -0,0 +1,9 @@ +%META:TOPICINFO{author="TWikiContributor" date="1111929255" format="1.1" version="1"}% +%META:TOPICPARENT{name="TWikiVariables"}% +#VarHOMEWEB +---+++ HOMEWEB -- name of Home web + * The web is the home web (aka frontpage, landing, entry), i.e. the page + a user is supposed to go when clicking on an "Home" button. + * Syntax: =%HOMEWEB%= + * Expands to: =%HOMEWEB%= + * Related: [[%IF{"'%INCLUDINGTOPIC%'='TWikiVariables'" then="#"}%VarSYSTEMWEB][SYSTEMWEB]] diff -r d236dfa352cd lib/MANIFEST --- a/lib/MANIFEST Fri Sep 26 00:39:58 2008 +0200 +++ b/lib/MANIFEST Fri Sep 26 00:49:56 2008 +0200 @@ -244,6 +244,7 @@ data/TWiki/VarLOGOUT.txt 0644 data/TWiki/VarLOGOUT.txt 0644 data/TWiki/VarM.txt 0644 data/TWiki/VarMAINWEB.txt 0644 +data/TWiki/VarHOMEWEB.txt 0644 data/TWiki/VarMAKETEXT.txt 0644 data/TWiki/VarMAROON.txt 0644 data/TWiki/VarMETA.txt 0644 diff -r d236dfa352cd lib/TWiki.pm --- a/lib/TWiki.pm Fri Sep 26 00:39:58 2008 +0200 +++ b/lib/TWiki.pm Fri Sep 26 00:49:56 2008 +0200 @@ -40,7 +40,7 @@ with CGI accelerators such as mod_perl. * =user= Unique user ID of logged-in user * =users= TWiki::Users singleton * =webName= Name of web found in URL path, or =web= URL parameter, - or {UsersWebName} + or {HomeWebName} =cut @@ -294,6 +294,7 @@ BEGIN { $functionTags{TRASHWEB} = sub { $TWiki::cfg{TrashWebName} }; $functionTags{TWIKIADMINLOGIN} = sub { $TWiki::cfg{AdminUserLogin} }; $functionTags{USERSWEB} = sub { $TWiki::cfg{UsersWebName} }; + $functionTags{HOMEWEB} = sub { $TWiki::cfg{HomeWebName} }; $functionTags{WEBPREFSTOPIC} = sub { $TWiki::cfg{WebPrefsTopicName} }; $functionTags{WIKIPREFSTOPIC} = sub { $TWiki::cfg{SitePrefsTopicName} }; $functionTags{WIKIUSERSTOPIC} = sub { $TWiki::cfg{UsersTopicName} }; @@ -829,7 +830,7 @@ sub redirect { # goto oops if URL is trying to take us somewhere dangerous $url = $this->getScriptUrl( 1, 'oops', - $this->{web} || $TWiki::cfg{UsersWebName}, + $this->{web} || $TWiki::cfg{HomeWebName}, $this->{topic} || $TWiki::cfg{HomeTopicName}, template => 'oopsaccessdenied', def => 'topic_access', @@ -1208,7 +1209,7 @@ here) here) *WARNING* if there is no web specification (in the web or topic parameters) -the web defaults to $TWiki::cfg{UsersWebName}. If there is no topic +the web defaults to $TWiki::cfg{HomeWebName}. If there is no topic specification, or the topic is '0', the topic defaults to the web home topic name. @@ -1223,7 +1224,7 @@ sub normalizeWebTopicName { $web = $1; $topic = $2; } - $web ||= $cfg{UsersWebName}; + $web ||= $cfg{HomeWebName}; $topic ||= $cfg{HomeTopicName}; while( $web =~ s/%((MAIN|TWIKI|USERS|SYSTEM|DOC)WEB)%/_expandTagOnTopicRendering( $this,$1)||''/e ) { } @@ -1387,7 +1388,7 @@ sub new { $web =~ s/$TWiki::cfg{NameFilter}//go; $this->{requestedWebName} = TWiki::Sandbox::untaintUnchecked( $web ); #can be an empty string - $web = $TWiki::cfg{UsersWebName} unless $web; + $web = $TWiki::cfg{HomeWebName} unless $web; $this->{webName} = TWiki::Sandbox::untaintUnchecked( $web ); # Convert UTF-8 web and topic name from URL into site charset if necessary diff -r d236dfa352cd lib/TWiki.spec --- a/lib/TWiki.spec Fri Sep 26 00:39:58 2008 +0200 +++ b/lib/TWiki.spec Fri Sep 26 00:49:56 2008 +0200 @@ -158,6 +158,11 @@ my $OS = $TWiki::cfg{OS} || ''; # Suffix of TWiki CGI scripts (e.g. .cgi or .pl). You may need to set this # if your webserver requires an extension. $TWiki::cfg{ScriptSuffix} = ''; + +# **STRING 20 ** +# Name of the Home web (aka landing, root, frontpage) web +# If you change this setting, you must make sure the web exists. +$TWiki::cfg{HomeWebName} = 'Home'; # ---+ Security setup diff -r d236dfa352cd lib/TWiki/Func.pm --- a/lib/TWiki/Func.pm Fri Sep 26 00:39:58 2008 +0200 +++ b/lib/TWiki/Func.pm Fri Sep 26 00:49:56 2008 +0200 @@ -145,7 +145,7 @@ sub getViewUrl { my( $web, $topic ) = @_; ASSERT($TWiki::Plugins::SESSION) if DEBUG; - $web ||= $TWiki::Plugins::SESSION->{webName} || $TWiki::cfg{UsersWebName}; + $web ||= $TWiki::Plugins::SESSION->{webName} || $TWiki::cfg{HomeWebName}; return getScriptUrl( $web, $topic, 'view' ); } @@ -599,6 +599,22 @@ Return: =$name= Name, e.g. ='Main'= =cut sub getMainWebname { + return $TWiki::cfg{UsersWebName}; +} + +=pod + +---+++ getHomeWebname( ) -> $name + +Get name of Home web as defined in TWiki.cfg + +Return: =$name= Name, e.g. ='Home'= + +*Since:* TWiki::Plugins::VERSION 1.000 (27 Feb 2001) + +=cut + +sub getHomeWebname { return $TWiki::cfg{UsersWebName}; } @@ -3089,6 +3105,7 @@ As per the GPL, removal of this notice i * =getDataDir() -> $dir= * =getDefaultUserName() -> $loginName= * =getMainWebname() -> $name= + * =getHomeWebname() -> $name= * =getOopsUrl($web, $topic, $template, @theParams) -> $url= * =getPreferencesFlag($key) -> $boolean= * =getPreferencesValue($key, $web) -> $value= diff -r d236dfa352cd lib/TWiki/Plugins/RenderListPlugin.pm --- a/lib/TWiki/Plugins/RenderListPlugin.pm Fri Sep 26 00:39:58 2008 +0200 +++ b/lib/TWiki/Plugins/RenderListPlugin.pm Fri Sep 26 00:49:56 2008 +0200 @@ -179,6 +179,8 @@ sub renderIconList $theParams =~ s/%ATTACHURL%/$attachUrl/go; $theParams =~ s/%WEB%/$installWeb/go; $theParams =~ s/%MAINWEB%/TWiki::Func::getMainWebname()/geo; + $theParams =~ s/%USERSWEB%/TWiki::Func::getUsersWebname()/geo; + $theParams =~ s/%HOMEWEB%/TWiki::Func::getHomeWebname()/geo; $theParams =~ s/%TWIKIWEB%/TWiki::Func::getTwikiWebname()/geo; my ( $showLead, $width, $height, $iconSp, $iconT, $iconI, $iconL, $iconImg ) = split( /, */, $theParams ); diff -r d236dfa352cd lib/TWiki/UI/Manage.pm --- a/lib/TWiki/UI/Manage.pm Fri Sep 26 00:39:58 2008 +0200 +++ b/lib/TWiki/UI/Manage.pm Fri Sep 26 00:49:56 2008 +0200 @@ -724,7 +724,7 @@ sub _renameweb { $oldParentWeb, $TWiki::cfg{HomeTopicName} ); } else { $new_url = $session->getScriptUrl( 0, 'view', - $TWiki::cfg{UsersWebName}, $TWiki::cfg{HomeTopicName} ); + $TWiki::cfg{HomeWebName}, $TWiki::cfg{HomeTopicName} ); } } else { # redirect to new web diff -r d236dfa352cd lib/TWiki/UI/Statistics.pm --- a/lib/TWiki/UI/Statistics.pm Fri Sep 26 00:39:58 2008 +0200 +++ b/lib/TWiki/UI/Statistics.pm Fri Sep 26 00:49:56 2008 +0200 @@ -71,7 +71,7 @@ sub statistics { my $tmp = ''; # web to redirect to after finishing - my $destWeb = $TWiki::cfg{UsersWebName}; + my $destWeb = $TWiki::cfg{HomeWebName}; my $logDate = $session->{cgiQuery}->param( 'logdate' ) || ''; $logDate =~ s/[^0-9]//g; # remove all non numerals $debug = $session->{cgiQuery}->param( 'debug' ); diff -r d236dfa352cd pub/Home/WebPreferences/favicon.ico Binary file pub/Home/WebPreferences/favicon.ico has changed diff -r d236dfa352cd pub/Home/WebPreferences/logo.gif Binary file pub/Home/WebPreferences/logo.gif has changed diff -r d236dfa352cd templates/oopsaccessdenied.classic.tmpl --- a/templates/oopsaccessdenied.classic.tmpl Fri Sep 26 00:39:58 2008 +0200 +++ b/templates/oopsaccessdenied.classic.tmpl Fri Sep 26 00:49:56 2008 +0200 @@ -3,7 +3,7 @@ %TMPL:DEF{"titleaction"}%%MAKETEXT{"(oops)"}% %TMPL:END% %TMPL:DEF{"webaction"}% *%MAKETEXT{"Attention"}%* %TMPL:END% %TMPL:DEF{"heading"}%%MAKETEXT{"Access Denied"}%%TMPL:END% -%TMPL:DEF{"topicaction"}% [[%MAINWEB%.%HOMETOPIC%][%MAKETEXT{"OK"}%]] %TMPL:END% +%TMPL:DEF{"topicaction"}% [[%HOMEWEB%.%HOMETOPIC%][%MAKETEXT{"OK"}%]] %TMPL:END% %TMPL:INCLUDE{"messages"}% %TMPL:DEF{"message"}%%INSTANTIATE% %TMPL:END% diff -r d236dfa352cd templates/twiki.classic.tmpl --- a/templates/twiki.classic.tmpl Fri Sep 26 00:39:58 2008 +0200 +++ b/templates/twiki.classic.tmpl Fri Sep 26 00:49:56 2008 +0200 @@ -77,7 +77,7 @@ %WEBLOGOALT% - %WIKITOOLNAME% + %WIKITOOLNAME% > %WEB% > %META{"parent" nowebhome="on" suffix=" >"}% %TOPIC% %TMPL:P{"titleaction"}% diff -r d236dfa352cd templates/view.pattern.tmpl --- a/templates/view.pattern.tmpl Fri Sep 26 00:39:58 2008 +0200 +++ b/templates/view.pattern.tmpl Fri Sep 26 00:49:56 2008 +0200 @@ -38,7 +38,7 @@ %TMPL:DEF{"breadcrumb:title"}%%MAKETEXT{"You are here:"}% %TMPL:END% -%TMPL:DEF{"breadcrumb:wikitoolname"}%[[%MAINWEB%.%HOMETOPIC%][%WIKITOOLNAME%]]%TMPL:END% +%TMPL:DEF{"breadcrumb:wikitoolname"}%[[%HOMEWEB%.%HOMETOPIC%][%WIKITOOLNAME%]]%TMPL:P{"breadcrumb:separator"}%%TMPL:END% %TMPL:DEF{"breadcrumb:currentweb"}%%TMPL:P{"breadcrumb:separator"}% %MAKETEXT{"[_1] Web" args="%WEB%"}%%TMPL:END% @@ -71,4 +71,4 @@ %TMPL:DEF{"footernote"}%%TMPL:P{"topicinfo"}%%TMPL:END% %TMPL:DEF{"topicinfo"}%
%MAKETEXT{"Topic revision:"}% %REVINFO%
%META{"moved"}%
%TMPL:END% -%TMPL:DEF{"sig_textareabuttons"}%
%TMPL:P{"textareabuttons"}%
%TMPL:END% \ No newline at end of file +%TMPL:DEF{"sig_textareabuttons"}%
%TMPL:P{"textareabuttons"}%
%TMPL:END% diff -r d236dfa352cd tools/extender.pl --- a/tools/extender.pl Fri Sep 26 00:39:58 2008 +0200 +++ b/tools/extender.pl Fri Sep 26 00:49:56 2008 +0200 @@ -137,7 +137,7 @@ sub remap { if (defined $cfg{UsersTopicName}) { $file =~ s#(Main)/TWikiUsers\.txt(.*)$#$1/$cfg{UsersTopicName}.txt$2#; } - foreach my $w qw( SystemWebName TrashWebName UsersWebName ) { + foreach my $w qw( SystemWebName TrashWebName UsersWebName HomeWebName ) { if (defined $cfg{$w}) { $file =~ s#^data/$w/#data/$cfg{$w}/#; $file =~ s#^pub/$w/#pub/$cfg{$w}/#;