[Slashdotjp-dev 1333] [864] merged from upstream T2_5_0_233 tag

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2008年 12月 5日 (金) 14:46:15 JST


Revision: 864
          http://svn.sourceforge.jp/view?root=slashdotjp&view=rev&rev=864
Author:   tach
Date:     2008-12-05 14:46:15 +0900 (Fri, 05 Dec 2008)

Log Message:
-----------
merged from upstream T2_5_0_233 tag

Modified Paths:
--------------
    slashjp/branches/upstream/current/Slash/Apache/Apache.pm
    slashjp/branches/upstream/current/Slash/Apache/User/User.pm
    slashjp/branches/upstream/current/Slash/DB/MySQL/MySQL.pm
    slashjp/branches/upstream/current/Slash/Utility/Display/Display.pm
    slashjp/branches/upstream/current/plugins/Admin/templates/peer_weights;admin;default
    slashjp/branches/upstream/current/plugins/Admin/templates/recent_subs;admin;default
    slashjp/branches/upstream/current/plugins/Ajax/htdocs/images/common.js
    slashjp/branches/upstream/current/plugins/Bookmark/templates/userbookmarks;users;default
    slashjp/branches/upstream/current/plugins/FireHose/FireHose.pm
    slashjp/branches/upstream/current/plugins/FireHose/firehose.pl
    slashjp/branches/upstream/current/plugins/FireHose/mysql_dump.sql
    slashjp/branches/upstream/current/plugins/FireHose/mysql_schema.sql
    slashjp/branches/upstream/current/plugins/FireHose/templates/data;firehose;default
    slashjp/branches/upstream/current/plugins/FireHose/templates/formatHoseTitle;misc;default
    slashjp/branches/upstream/current/plugins/FireHose/templates/list;firehose;default
    slashjp/branches/upstream/current/plugins/FireHose/templates/paginate;firehose;default
    slashjp/branches/upstream/current/plugins/Hof/templates/main;hof;default
    slashjp/branches/upstream/current/plugins/Journal/dump
    slashjp/branches/upstream/current/plugins/Journal/templates/data;journal;default
    slashjp/branches/upstream/current/plugins/Journal/templates/friendsview;journal;default
    slashjp/branches/upstream/current/plugins/Journal/templates/generic;journal;default
    slashjp/branches/upstream/current/plugins/Journal/templates/journalfriends;journal;default
    slashjp/branches/upstream/current/plugins/Journal/templates/journallist;journal;default
    slashjp/branches/upstream/current/plugins/Journal/templates/journaltop;journal;default
    slashjp/branches/upstream/current/plugins/Journal/templates/messagenew;journal;default
    slashjp/branches/upstream/current/plugins/Journal/templates/slashdot;journal;default
    slashjp/branches/upstream/current/plugins/Messages/templates/zoo_msg;zoo;default
    slashjp/branches/upstream/current/plugins/Search/templates/journalsearch;search;default
    slashjp/branches/upstream/current/plugins/Search/templates/usersearch;search;default
    slashjp/branches/upstream/current/plugins/SearchToo/templates/journalsearch;searchtoo;default
    slashjp/branches/upstream/current/plugins/SearchToo/templates/usersearch;searchtoo;default
    slashjp/branches/upstream/current/plugins/Tags/Tags.pm
    slashjp/branches/upstream/current/plugins/Tags/templates/taghistory;misc;default
    slashjp/branches/upstream/current/plugins/Tags/templates/usertaghistory;users;default
    slashjp/branches/upstream/current/plugins/Tags/templates/usertags;users;default
    slashjp/branches/upstream/current/plugins/Tags/templates/usertagsforname;users;default
    slashjp/branches/upstream/current/plugins/Users2/Users2.pm
    slashjp/branches/upstream/current/plugins/Zoo/templates/alllist;zoo;default
    slashjp/branches/upstream/current/plugins/Zoo/templates/confirm;zoo;default
    slashjp/branches/upstream/current/plugins/Zoo/templates/data;zoo;default
    slashjp/branches/upstream/current/plugins/Zoo/templates/plainlist;zoo;default
    slashjp/branches/upstream/current/plugins/Zoo/templates/zoohead;zoo;default
    slashjp/branches/upstream/current/sql/mysql/defaults.sql
    slashjp/branches/upstream/current/sql/mysql/upgrades
    slashjp/branches/upstream/current/tagboxes/CommentScoreReason/CommentScoreReason.pm
    slashjp/branches/upstream/current/tagboxes/FHEditorPop/FHEditorPop.pm
    slashjp/branches/upstream/current/tagboxes/FireHoseScores/FireHoseScores.pm
    slashjp/branches/upstream/current/themes/slashcode/htdocs/users2.pl
    slashjp/branches/upstream/current/themes/slashcode/templates/currentAdminUsers;misc;default
    slashjp/branches/upstream/current/themes/slashcode/templates/dispStory;misc;default
    slashjp/branches/upstream/current/themes/slashcode/templates/friendsview;index;default
    slashjp/branches/upstream/current/themes/slashcode/templates/linkrel;misc;default
    slashjp/branches/upstream/current/themes/slashcode/templates/printCommNoArchive;misc;default
    slashjp/branches/upstream/current/themes/slashcode/templates/u2MainView;users;default
    slashjp/branches/upstream/current/themes/slashcode/templates/u2Menu;users;default
    slashjp/branches/upstream/current/themes/slashcode/templates/u2UserBio;users;default
    slashjp/branches/upstream/current/themes/slashcode/templates/u2UserBoxes;users;default
    slashjp/branches/upstream/current/themes/slashcode/templates/udiscuss_list;comments;default
    slashjp/branches/upstream/current/themes/slashcode/templates/userInfo2;users;default
    slashjp/branches/upstream/current/themes/slashcode/templates/userInfo;users;default
    slashjp/branches/upstream/current/themes/slashcode/templates/user_titlebar;misc;default
    slashjp/branches/upstream/current/themes/slashcode/templates/userboxes2;misc;default
    slashjp/branches/upstream/current/themes/slashcode/templates/userboxes;misc;default


-------------- next part --------------
Modified: slashjp/branches/upstream/current/Slash/Apache/Apache.pm
===================================================================
--- slashjp/branches/upstream/current/Slash/Apache/Apache.pm	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/Slash/Apache/Apache.pm	2008-12-05 05:46:15 UTC (rev 864)
@@ -381,7 +381,7 @@
 		my $basedir = $constants->{basedir};
 
 		# $USER_MATCH defined above
-		if ($dbon && ($is_user || $has_daypass)) {
+		if ($dbon && ($is_user || $has_daypass || $gSkin->{index_handler} =~ /^users/)) {
 			$r->uri("/$gSkin->{index_handler}");
 			$r->filename("$basedir/$gSkin->{index_handler}");
 			return OK;

Modified: slashjp/branches/upstream/current/Slash/Apache/User/User.pm
===================================================================
--- slashjp/branches/upstream/current/Slash/Apache/User/User.pm	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/Slash/Apache/User/User.pm	2008-12-05 05:46:15 UTC (rev 864)
@@ -633,23 +633,17 @@
 			} elsif ($logged_in) {
 				$found_the_op = 1;
 				if ($op eq 'journal') {
-					if ($constants->{u2}) {
-						$r->args("op=userinfo&dp=journal");
-						$r->uri('/users2.pl');
-						$r->filename($constants->{basedir} . '/users2.pl');
+					my $args;
+					if ($extra =~ /^\d+$/) {
+						$args = "id=$extra&op=edit";
+					} elsif ($extra eq 'friends') {
+						$args = "op=friendview";
 					} else {
-						my $args;
-						if ($extra =~ /^\d+$/) {
-							$args = "id=$extra&op=edit";
-						} elsif ($extra eq 'friends') {
-							$args = "op=friendview";
-						} else {
-							$args = "op=list";
-						}
-						$r->args($args);
-						$r->uri('/journal.pl');
-						$r->filename($constants->{basedir} . '/journal.pl');
+						$args = "op=list";
 					}
+					$r->args($args);
+					$r->uri('/journal.pl');
+					$r->filename($constants->{basedir} . '/journal.pl');
 
 				} elsif ($op eq 'discussions') {
 					$r->args("op=personal_index");
@@ -663,48 +657,25 @@
 					$r->filename($constants->{basedir} . '/messages.pl');
 
 				} elsif ($op =~ /^(?:friends|fans|freaks|foes|zoo)$/) {
-					if ($constants->{u2}) {
-						$extra .= '/';
+					my $args = "op=$op";
+					$extra .= '/';
 
-						if ($op eq 'friends' && $extra =~ s/^friends\///) {
-							$op =~ s/friends/fof/;
-						} elsif ($op eq 'friends' && $extra =~ s/^foes\///) {
-							$op =~ s/friends/eof/;
-						} elsif ($op eq 'zoo') {
-							$op =~ s/zoo/all/;
-						}
-
-						my $args = "op=userinfo&dp=$op";
-						$r->args($args);
-						$r->uri('/users2.pl');
-						$r->filename($constants->{basedir} . '/users2.pl');
-					} else {
-						my $args = "op=$op";
-						$extra .= '/';
-
-						if ($op eq 'friends' && $extra =~ s/^friends\///) {
-							$args =~ s/friends/fof/;
-						} elsif ($op eq 'friends' && $extra =~ s/^foes\///) {
-							$args =~ s/friends/eof/;
-						} elsif ($op eq 'zoo') {
-							$args =~ s/zoo/all/;
-						}
-
-						$r->args($args);
-						$r->uri('/zoo.pl');
-						$r->filename($constants->{basedir} . '/zoo.pl');
+					if ($op eq 'friends' && $extra =~ s/^friends\///) {
+						$args =~ s/friends/fof/;
+					} elsif ($op eq 'friends' && $extra =~ s/^foes\///) {
+						$args =~ s/friends/eof/;
+					} elsif ($op eq 'zoo') {
+						$args =~ s/zoo/all/;
 					}
 
+					$r->args($args);
+					$r->uri('/zoo.pl');
+					$r->filename($constants->{basedir} . '/zoo.pl');
+
 				} elsif ($op eq 'comments') {
-					if ($constants->{u2}) {
-						$r->args("op=userinfo&dp=comments");
-						$r->uri('/users2.pl');
-						$r->filename($constants->{basedir} . '/users2.pl');
-					} else {
-						$r->args("op=editcomm");
-						$r->uri('/users.pl');
-						$r->filename($constants->{basedir} . '/users.pl');
-					}
+					$r->args("op=editcomm");
+					$r->uri('/users.pl');
+					$r->filename($constants->{basedir} . '/users.pl');
 
 				} elsif ($op eq 'homepage') {
 					$r->args("op=edithome");
@@ -732,42 +703,23 @@
 					$r->filename($constants->{basedir} . '/journal.pl');
 
 				} elsif ($op eq 'tags') {
-					if ($constants->{u2}) {
-						$r->args("op=userinfo&dp=tags");
-						$r->uri('/users2.pl');
-						$r->filename($constants->{basedir} . '/users2.pl');
-					} else {
-						my $args = 'op=showtags';
-						# XXX "!" is a 'reserved' char in URI, escape it here?
-						$args .= "&tagname=$extra" if $extra;
-						$r->args($args);
-						$r->uri('/users.pl');
-						$r->filename($constants->{basedir} . '/users.pl');
-					}
+					my $args = 'op=showtags';
+					# XXX "!" is a 'reserved' char in URI, escape it here?
+					$args .= "&tagname=$extra" if $extra;
+					$r->args($args);
+					$r->uri('/users.pl');
+					$r->filename($constants->{basedir} . '/users.pl');
 
 				} elsif ($op eq 'bookmarks') {
-					if ($constants->{u2}) {
-						$r->args("op=userinfo&dp=bookmarks");
-						$r->uri('/users2.pl');
-						$r->filename($constants->{basedir} . '/users2.pl');
-					} else {
-						$r->args("op=showbookmarks");
-						$r->uri('/users.pl');
-						$r->filename($constants->{basedir} . '/users.pl');
-					}
+					$r->args("op=showbookmarks");
+					$r->uri('/users.pl');
+					$r->filename($constants->{basedir} . '/users.pl');
 
 				} elsif ($op eq 'firehose') {
-					if ($constants->{u2}) {
-						my $filter = fixparam("user:");
-						$r->args("op=userinfo&dp=firehose");
-						$r->uri('/users2.pl');
-						$r->filename($constants->{basedir} . '/users2.pl');
-					} else {
-						my $filter = fixparam("user:");
-						$r->args("op=userfirehose");
-						$r->uri('users.pl');
-						$r->filename($constants->{basedir} . '/users.pl');
-					}
+					my $filter = fixparam("user:");
+					$r->args("op=userfirehose");
+					$r->uri('users.pl');
+					$r->filename($constants->{basedir} . '/users.pl');
 
 				} elsif ($op eq 'preferences') {
 					$r->args("op=displayprefs");

Modified: slashjp/branches/upstream/current/Slash/DB/MySQL/MySQL.pm
===================================================================
--- slashjp/branches/upstream/current/Slash/DB/MySQL/MySQL.pm	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/Slash/DB/MySQL/MySQL.pm	2008-12-05 05:46:15 UTC (rev 864)
@@ -346,6 +346,7 @@
 sub createComment {
 	my($self, $comment) = @_;
 	return -1 unless dbAvailable("write_comments");
+	my $constants = getCurrentStatic();
 	my $comment_text = $comment->{comment};
 	delete $comment->{comment};
 	$comment->{signature} = md5_hex($comment_text);
@@ -433,6 +434,11 @@
 #		$searchtoo->storeRecords(comments => $cid, { add => 1 });
 	}
 
+	my $firehose = getObject('Slash::FireHose');
+	if ($firehose && !isAnon($comment->{uid})) {
+		$firehose->createUpdateItemFromComment($cid);
+	}
+
 	return $cid;
 }
 
@@ -12399,7 +12405,7 @@
 		my $fixnick = $journaldata_hr->{$id}{nickname};
 if (!defined $fixnick) { print STDERR scalar(gmtime) . " _addGlobjEssentials_journals no nick for journal $id\n"; }
 		$fixnick = fixparam($fixnick || '');
-		$data_hr->{$globjid}{url} = "$constants->{rootdir}/~$fixnick/journal/$id";
+		$data_hr->{$globjid}{url} = "$constants->{real_rootdir}/~$fixnick/journal/$id";
 		$data_hr->{$globjid}{title} = $journaldata_hr->{$id}{description};
 		$data_hr->{$globjid}{created_at} = $journaldata_hr->{$id}{date};
 	}
@@ -12842,6 +12848,14 @@
 	return $story_link_ar->[0];
 }
 
+sub getShillInfo {
+        my($self, $shill_id) = @_;
+        my $shill_id_q = $self->sqlQuote($shill_id);
+
+        return $self->sqlSelectHashref('*', 'shill_ids', "shill_id=$shill_id_q");
+
+}
+
 ########################################################
 sub DESTROY {
 	my($self) = @_;

Modified: slashjp/branches/upstream/current/Slash/Utility/Display/Display.pm
===================================================================
--- slashjp/branches/upstream/current/Slash/Utility/Display/Display.pm	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/Slash/Utility/Display/Display.pm	2008-12-05 05:46:15 UTC (rev 864)
@@ -1176,7 +1176,7 @@
 		my $nick_fix = fixparam($ll_nick);
 		my $nick_attribute = strip_attribute($ll_nick);
 		push @$menu_items, {
-			value =>	"$gSkin->{rootdir}/~$nick_fix",
+			value =>	"$gSkin->{real_rootdir}/~$nick_fix",
 			label =>	"~$nick_attribute ($user->{lastlookuid})",
 			sel_label =>	"otheruser",
 			menuorder =>	99999,

Modified: slashjp/branches/upstream/current/plugins/Admin/templates/peer_weights;admin;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Admin/templates/peer_weights;admin;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Admin/templates/peer_weights;admin;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -33,10 +33,10 @@
 	uidB = uidsB.$i %]
 <tr class="data_hl1">
 <td>[% ordA.$uidA %].</td>
-<td><a href="/~[% nickname.$uidA | strip_paramattr %]">[% nickname.$uidA | strip_nohtml %]</a></td>
+<td><a href="[% constants.real_rootdir %]/~[% nickname.$uidA | strip_paramattr %]">[% nickname.$uidA | strip_nohtml %]</a></td>
 <td>[% weightA.$uidA %]</td>
 <td>[% ordB.$uidB %].</td>
-<td><a href="/~[% nickname.$uidB | strip_paramattr %]">[% nickname.$uidB | strip_nohtml %]</a></td>
+<td><a href="[% constants.real_rootdir %]/~[% nickname.$uidB | strip_paramattr %]">[% nickname.$uidB | strip_nohtml %]</a></td>
 <td>[% weightB.$uidB %]</td>
 </tr>
 [% END %]

Modified: slashjp/branches/upstream/current/plugins/Admin/templates/recent_subs;admin;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Admin/templates/recent_subs;admin;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Admin/templates/recent_subs;admin;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -39,7 +39,7 @@
 	[% FOREACH sub = subs %]
 	<tr>
 		<td align="right">[% sub.spid %]</td>
-		<td align="left"><a href="[% gSkin.rootdir
+		<td align="left"><a href="[% constants.real_rootdir
 			%]/~[% sub.nickname | strip_paramattr %]">[%
 			sub.nickname | strip_literal %] ([% sub.uid %])</a></td>
 		<td align="left">[% sub.email | strip_literal %]</td>

Modified: slashjp/branches/upstream/current/plugins/Ajax/htdocs/images/common.js
===================================================================
--- slashjp/branches/upstream/current/plugins/Ajax/htdocs/images/common.js	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Ajax/htdocs/images/common.js	2008-12-05 05:46:15 UTC (rev 864)
@@ -1121,10 +1121,10 @@
 				}
 				if ( firehose_future[firehose_ordered[i]] ) {
 					$('#ttype-'+firehose_ordered[i]).setClass('future');
-					$('#firehose-'+firehose_ordered[i] + "h3").setClass('future');
+					$('#firehose-'+firehose_ordered[i] + " h3").setClass('future');
 				} else {
 					$('#ttype-'+firehose_ordered[i]+'.future').setClass('story');
-					$('#firehose-'+firehose_ordered[i] + "h3.future").setClass('story');
+					$('#firehose-'+firehose_ordered[i] + " h3.future").setClass('story');
 				}
 			}
 			if ( moved ) after_article_moved();
@@ -1941,7 +1941,8 @@
 
 $(function(){
 	$footer = $('#ft');
-	$slashboxes = $('#slashboxes').
+	$slashboxes = $('#slashboxes, #userboxes').
+		eq(0).
 		append('<div id="floating-slashbox-ad" />');
 	$ad_position = $slashboxes.find('#floating-slashbox-ad');
 
@@ -2146,11 +2147,16 @@
 }
 
 Slash.Firehose.at_or_below_ad_space = function( $articles ){
-	var min_top = Math.max(window.pageYOffset, $slashboxes.offset().top + $slashboxes.height());
-	return $articles.filter(function(){
-		return $(this).offset().top >= min_top;
-	});
-
+	try {
+		var min_top = Math.max(window.pageYOffset, $slashboxes.offset().top + $slashboxes.height());
+		return $articles.filter(function(){
+			return $(this).offset().top >= min_top;
+		});
+	} catch ( e ) {
+		// don't throw
+	}
+		// just tell the caller no articles supplied are at or below ad-space
+	return $([]);
 }
 
 Slash.Firehose.choose_article_for_next_ad = function(){

Modified: slashjp/branches/upstream/current/plugins/Bookmark/templates/userbookmarks;users;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Bookmark/templates/userbookmarks;users;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Bookmark/templates/userbookmarks;users;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -19,7 +19,7 @@
 [% thisnickname = useredit.nickname | strip_literal;
    url_nick = useredit.nickname | strip_paramattr;
    uid = useredit.uid;
-   title = "Bookmarks by <a href=\"$gSkin.rootdir/~$url_nick/\">$thisnickname ($uid)</a>";
+   title = "Bookmarks by <a href=\"$constants.real_rootdir/~$url_nick/\">$thisnickname ($uid)</a>";
    PROCESS user_titlebar tab_selected='bookmarks' %]
 <ul class="menu"><li><a href="[% gSkin.rootdir %]/bookmark.pl/?op=showbookmarks&recent=1">Recent</a></li>
 <li><a href="[% gSkin.rootdir %]/bookmark.pl/?op=showbookmarks&popular=1">Popular</a></li></ul>

Modified: slashjp/branches/upstream/current/plugins/FireHose/FireHose.pm
===================================================================
--- slashjp/branches/upstream/current/plugins/FireHose/FireHose.pm	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/FireHose/FireHose.pm	2008-12-05 05:46:15 UTC (rev 864)
@@ -140,6 +140,24 @@
 	return $colors;
 }
 
+sub createUpdateItemFromComment {
+	my($self, $cid) = @_;
+	my $comment = $self->getComment($cid);
+	my $text = $self->getCommentText($cid);
+	
+	my $item = $self->getFireHoseByTypeSrcid("comment", $cid);
+	my $fhid;
+
+	if ($item && $item->{id}) {
+		# update item or do nothing
+		$fhid = $item->{id};
+	} else {
+		$fhid = $self->createItemFromComment($cid);
+	}
+	return $fhid;
+	
+}
+
 sub createItemFromComment {
 	my($self, $cid) = @_;
 	my $comment = $self->getComment($cid);
@@ -166,9 +184,21 @@
 		editorpop	=> $editorpop,
 		globjid		=> $globjid,
 		discussion	=> $comment->{sid},
+		createtime	=> $comment->{date},
 	};
 	my $fhid = $self->createFireHose($data);
 
+	if (!isAnon($comment->{uid})) {
+		my $constants = getCurrentStatic();
+		my $tags = getObject('Slash::Tags');
+		$tags->createTag({
+			uid			=> $comment->{uid},
+			name			=> $constants->{tags_upvote_tagname},
+			globjid			=> $globjid,
+			private			=> 1,
+		});
+	}
+
 	my $tagboxdb = getObject('Slash::Tagbox');
 	if ($tagboxdb) {
 		for my $tbname (qw( FireHoseScores FHEditorPop CommentScoreReason )) {
@@ -658,7 +688,7 @@
 				$labels = $tags->getPositiveTags;
 				$labels = ['nod'] unless @$labels;
 			} else { # tagged_non_negative || tagged_negative
-				$labels = $tags->getNegativeTags;
+				$labels = $tags->getFirehoseExcludeTags;
 				$labels = ['nix'] unless @$labels;
 				$not = 'NOT' if $options->{tagged_non_negative};
 			}
@@ -2445,7 +2475,6 @@
 				$options->{$_} = $form->{$_} ? 1 : 0;
 			}
 		}
-		$options->{$_} = defined $form->{$_};
 	}
 
 	my $page = $form->{page} || 0;
@@ -2474,7 +2503,7 @@
 		$options->{base_filter} =~ s/\{nickname\}/$the_nickname/g;
 	}
 
-	if ($fhfilter =~ /\{tag}/) {
+	if ($fhfilter =~ /\{tag\}/) {
 		my $the_tag = $opts->{tag} || $form->{tagname};
 		$fhfilter =~ s/\{tag\}/$the_tag/g;
 		$options->{fhfilter} =~ s/\{tag\}/$the_tag/g;
@@ -2670,7 +2699,7 @@
 
 	$options->{smalldevices} = 1 if $self->shouldForceSmall();
 	$options->{limit} = $self->getFireHoseLimitSize($options->{mode}, $pagesize, $options->{smalldevices}, $options);
-	
+
 	return $options;
 }
 
@@ -3110,7 +3139,7 @@
 
 sub splitOpsFromString {
 	my ($self, $str) = @_;
-	my @fh_ops_orig = map { lc($_) } split((/\s+|"/), $str);
+	my @fh_ops_orig = map { lc($_) } split(/(\s+|")/, $str);
 	my @fh_ops;
 
 	my $in_quotes = 0;
@@ -3287,7 +3316,7 @@
 		$link_url = $story_link_ar->[0];
 	} elsif ($item->{type} eq "journal") {
 		my $the_user = $self->getUser($item->{uid});
-		$link_url = $constants->{rootdir} . "/~" . fixparam($the_user->{nickname}) . "/journal/$item->{srcid}";
+		$link_url = $constants->{real_rootdir} . "/~" . fixparam($the_user->{nickname}) . "/journal/$item->{srcid}";
 	} elsif ($item->{type} eq "comment") {
 		my $com = $self->getComment($item->{srcid});
 		$link_url = $gSkin->{rootdir} . "/comments.pl?sid=$com->{sid}&amp;cid=$com->{cid}";

Modified: slashjp/branches/upstream/current/plugins/FireHose/firehose.pl
===================================================================
--- slashjp/branches/upstream/current/plugins/FireHose/firehose.pl	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/FireHose/firehose.pl	2008-12-05 05:46:15 UTC (rev 864)
@@ -24,6 +24,7 @@
 	my $form      = getCurrentForm();
 	my $gSkin     = getCurrentSkin();
 	my $firehose  = getObject("Slash::FireHose");
+	my $reader    = getObject('Slash::DB', { db_type => 'reader' });
 
 	my $anonval = $constants->{firehose_anonval_param} || "";
 
@@ -87,7 +88,21 @@
 		}
 		if ($form->{op} && $form->{op} eq "view") {
 			my $item = $firehose->getFireHose($form->{id});
-			$title = "$constants->{sitename} - $item->{title}" if $item && $item->{title};
+			if ($item && $item->{id}) {
+				$title = "$constants->{sitename} - $item->{title}" if $item->{title};
+				my $author = $reader->getUser($item->{uid});
+				if ($author->{shill_id}) {
+					my $shill = $reader->getShillInfo($author->{shill_id});
+					if ($shill->{skid} && $shill->{skid} != $gSkin->{skid}) {
+						my $shill_skin = $reader->getSkin($shill->{skid});
+						if ($shill_skin && $shill_skin->{rootdir} ne $gSkin->{rootdir}) {
+							redirect("$shill_skin->{rootdir}$ENV{REQUEST_URI}");
+							return;
+						}
+					}
+				} 
+			}
+				
 		}
 		header($title, '') or return;
 	}

Modified: slashjp/branches/upstream/current/plugins/FireHose/mysql_dump.sql
===================================================================
--- slashjp/branches/upstream/current/plugins/FireHose/mysql_dump.sql	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/FireHose/mysql_dump.sql	2008-12-05 05:46:15 UTC (rev 864)
@@ -64,6 +64,6 @@
 
 INSERT INTO firehose_view (id, uid, viewname, useparentfilter, filter, orderby, orderdir, color, duration, mode, mixedmode, tab_display, options_edit, admin_maxitems, maxitems, seclev, pause) VALUES (NULL, 0, "daddypants", "yes", 'unsigned', "createtime", "DESC", "indigo", "-1", "fulltitle", "", "yes", "yes", 50, 30, 100,"");
 
-INSERT INTO firehose_view (id, uid, viewname, useparentfilter, filter, orderby, orderdir, color, duration, mode, mixedmode, tab_display, options_edit, admin_maxitems, maxitems, seclev, pause) VALUES (NULL, 0, "usertag", "no", '"user:{nickname}" "tag:{tag}"', "createtime", "DESC", "black", "-1", "full", "0", "no", "no", 20, 20, 0,"1");
+INSERT INTO firehose_view (id, uid, viewname, useparentfilter, filter, orderby, orderdir, color, duration, mode, mixedmode, tab_display, options_edit, admin_maxitems, maxitems, seclev, pause) VALUES (NULL, 0, "usertag", "no", '"user:{nickname}" "tag:{tag}"', "createtime", "DESC", "black", "-1", "fulltitle", "0", "no", "no", 20, 20, 0,"1");
 
 INSERT INTO firehose_view (id, uid, viewname, useparentfilter, filter, orderby, orderdir, color, duration, mode, mixedmode, tab_display, options_edit, admin_maxitems, maxitems, seclev, pause) VALUES (NULL, 0, "userjournalfriends", "no", '"authorfriend:{nickname}" journal', "createtime", "DESC", "black", "-1", "full", "0", "no", "no", 20, 20, 0,"1");

Modified: slashjp/branches/upstream/current/plugins/FireHose/mysql_schema.sql
===================================================================
--- slashjp/branches/upstream/current/plugins/FireHose/mysql_schema.sql	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/FireHose/mysql_schema.sql	2008-12-05 05:46:15 UTC (rev 864)
@@ -45,7 +45,8 @@
 	KEY createtime (createtime),
 	KEY popularity (popularity),
 	KEY neediness (neediness),
-	KEY url_id (url_id)
+	KEY url_id (url_id),
+	KEY uid (uid)
 ) TYPE=InnoDB;
 
 # The table giving an Object's Generally Accepted Story Publication Time

Modified: slashjp/branches/upstream/current/plugins/FireHose/templates/data;firehose;default
===================================================================
--- slashjp/branches/upstream/current/plugins/FireHose/templates/data;firehose;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/FireHose/templates/data;firehose;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -37,8 +37,9 @@
 	[% END %]
 	[%- IF adminmode && item.type == "submission" %]</a>[% END -%]
 	by [% IF adminmode && item.type != "story" %]
-		[% the_user.nickname | strip_literal %]
-		(<a href="[% gSkin.rootdir %]/users.pl?uid=[% the_user.uid %]">[% the_user.uid %]</a>)
+		[% IF Slash.isAnon(the_user.uid) %][% the_user.nickname | strip_literal %]
+		[% ELSE %]<a href="[% constants.real_rootdir %]/~[% the_user.nickname | strip_paramattr %]">[% the_user.nickname | strip_literal %] ([% the_user.uid %])</a>
+		[% END %]
 	[% END %]
 	[% IF extras && num_from_uid != '0' %]
 		([% accepted_from_uid %]/[% num_from_uid %]) 
@@ -51,7 +52,9 @@
 		[% ELSIF item.type == "story" %]
 			[% IF the_user.homepage %]<a href="[% the_user.homepage %]"[% rnf %]>[% END %][% the_user.nickname %][% IF the_user.homepage %]</a>[% END %]
 		[% ELSE %]
-			[% the_user.nickname | strip_literal %]
+			[% IF Slash.isAnon(the_user.uid) %][% the_user.nickname | strip_literal %]
+			[% ELSE %]<a href="[% constants.real_rootdir %]/~[% the_user.nickname | strip_paramattr %]">[% the_user.nickname | strip_literal %]</a>
+			[% END %]
 		[% END %]
 	[% END %]
 	[% IF extras && num_with_emaildomain != '0' %]
@@ -60,7 +63,7 @@
 
 	[% IF adminmode %]
 		[%  Slash.vislenify(item); %]
-		<a href="[% gSkin.rootdir -%]/users.pl?op=userinfo&amp;userfield=[% item.ipid -%]&amp;fieldname=ipid">[% item.ipid_vis -%]</a>
+		<a href="[% constants.real_rootdir -%]/users.pl?op=userinfo&amp;userfield=[% item.ipid -%]&amp;fieldname=ipid">[% item.ipid_vis -%]</a>
 		[% IF item.type == "story" %]
 			[% story = Slash.db.getStory(item.srcid) %]
 			[% IF story && story.fhid %]<a href="[% gSkin.rootdir %]/firehose.pl?op=view&amp;id=[% story.fhid %]">Original Submission</a>[% END %]

Modified: slashjp/branches/upstream/current/plugins/FireHose/templates/formatHoseTitle;misc;default
===================================================================
--- slashjp/branches/upstream/current/plugins/FireHose/templates/formatHoseTitle;misc;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/FireHose/templates/formatHoseTitle;misc;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -124,10 +124,10 @@
         title = pop_str _ title;
 END;
 
-IF options.view == "userjournal";
+IF item.type == "journal";
 	IF options.user_view_uid == user.uid;
-		title = title _ ' [ <a href="' _ gSkin.rootdir _ '/journal.pl?op=edit&amp;id=' _ item.srcid _ '">Edit</a> ';
-		title = title _ ' | <a href="' _ gSkin.rootdir _ '/journal.pl?op=removemeta&amp;id=' _ item.srcid _ '">Delete</a> ] ';
+		title = title _ '<span class="journal_edit"><a href="' _ gSkin.rootdir _ '/journal.pl?op=edit&amp;id=' _ item.srcid _ '">Edit</a></span> ';
+		title = title _ '<span class="journal_delete"><a href="' _ gSkin.rootdir _ '/journal.pl?op=removemeta&amp;id=' _ item.srcid _ '">Delete</a></span>';
 	END;
 END;
 	%]

Modified: slashjp/branches/upstream/current/plugins/FireHose/templates/list;firehose;default
===================================================================
--- slashjp/branches/upstream/current/plugins/FireHose/templates/list;firehose;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/FireHose/templates/list;firehose;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -30,7 +30,7 @@
 		submission_hash.${submission.subid} = submission;
 	END;
 	submission_accept = submission_count - (submission_reject + submission_pend) %]
-<div id="message"><div class="content">Submission Summary:
+<div id="message"><div class="content"><p>Submission Summary:
 [% submission_pend %] pending,
 [% submission_reject %] rejected,
 [% submission_accept %] accepted ([%
@@ -39,7 +39,7 @@
 	USE format;
 	percentage = format('%.2f');
 	percentage((100 * submission_accept) / (submission_accept + submission_reject + submission_pend))
-%]% accepted)</div></div>
+%]% accepted)</p></div></div>
 
 
 [% ELSIF options.view == "userjournal" AND (user.uid == options.user_view_uid) %]

Modified: slashjp/branches/upstream/current/plugins/FireHose/templates/paginate;firehose;default
===================================================================
--- slashjp/branches/upstream/current/plugins/FireHose/templates/paginate;firehose;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/FireHose/templates/paginate;firehose;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -22,10 +22,10 @@
 [% submit_plug = "";
    IF options.view.match('^userjournal');
 	submit_plug = '<span style="margin-left: 1em"><a href="' _ gSkin.rootdir _ '/journal.pl?op=edit" class="vbutton bg_666666 rd_5">Write in Journal</a></span>';
-   ELSIF options.view == "usersubmission";
-	submit_plug = '<span style="margin-left: 1em"><a href="' _ gSkin.rootdir _ '/submit.pl?primaryskid=' _ gSkin.skid _ '" class="vbutton bg_666666 rd_5">Submit Story</a></span>';
    ELSIF gSkin.name == "idle";
 	submit_plug = '<span style="margin-left: 1em"><a href="' _ gSkin.rootdir _ '/submit.pl?primaryskid=' _ gSkin.skid _ '" class="vbutton bg_666666 rd_5">Submit Idle Story</a></span>';
+   ELSE; #ELSIF options.view == "usersubmission";
+	submit_plug = '<span style="margin-left: 1em"><a href="' _ gSkin.rootdir _ '/submit.pl?primaryskid=' _ gSkin.skid _ '" class="vbutton bg_666666 rd_5">Submit Story</a></span>';
    END;
 
 %]

Modified: slashjp/branches/upstream/current/plugins/Hof/templates/main;hof;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Hof/templates/main;hof;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Hof/templates/main;hof;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -42,7 +42,7 @@
 
 <p>[% PROCESS titlebar title => 'Most Active Submitters' %]
 [% FOREACH item = activesub %]
-<b>[% item.0 %]</b> <a href="[% gSkin.rootdir %]/~[% item.1 | strip_paramattr %]/">[% item.1 %]</a><br>
+<b>[% item.0 %]</b> <a href="[% constants.real_rootdir %]/~[% item.1 | strip_paramattr %]/">[% item.1 %]</a><br>
 [% END %]</p>
 
 <p>[% PROCESS titlebar title => 'Most Active Poll Topics' %]

Modified: slashjp/branches/upstream/current/plugins/Journal/dump
===================================================================
--- slashjp/branches/upstream/current/plugins/Journal/dump	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Journal/dump	2008-12-05 05:46:15 UTC (rev 864)
@@ -14,7 +14,7 @@
 INSERT INTO journal_themes (name) VALUES ('bluebox');
 INSERT INTO journal_themes (name) VALUES ('slashdot');
 
-INSERT INTO menus (menu, label, value, seclev, menuorder) VALUES ('journal','[% user.nickname | strip_literal %]\'s Journal','[% gSkin.rootdir %]/~[% user.nickname | fixparam %]/journal/',1,1);
+INSERT INTO menus (menu, label, value, seclev, menuorder) VALUES ('journal','[% user.nickname | strip_literal %]\'s Journal','[% constants.real_rootdir %]/~[% user.nickname | fixparam %]/journal/',1,1);
 INSERT INTO menus (menu, label, value, seclev, menuorder) VALUES ('journal','Write in Journal','[% gSkin.rootdir %]/journal.pl?op=edit',1,2);
 INSERT INTO menus (menu, label, value, seclev, menuorder) VALUES ('journal','Delete/Edit Entries','[% gSkin.rootdir %]/journal.pl?op=list',1,3);
 INSERT INTO menus (menu, label, value, seclev, menuorder) VALUES ('journal','Top 10','[% gSkin.rootdir %]/journal.pl?op=top',0,4);

Modified: slashjp/branches/upstream/current/plugins/Journal/templates/data;journal;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Journal/templates/data;journal;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Journal/templates/data;journal;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -23,16 +23,16 @@
 
 [% CASE 'userhead' %]
 [% IF user.lowbandwidth %]
-	<a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/journal/">Journal</a> of <a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %])
+	<a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/journal/">Journal</a> of <a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %])
 [% ELSE %]
-	<a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/journal/">Journal</a> of <a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %])  [% PROCESS zoo_icons person=uid implied="" %]
+	<a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/journal/">Journal</a> of <a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %])  [% PROCESS zoo_icons person=uid implied="" %]
 [% END %]
 
 [% CASE 'friendhead' %]
 [% IF user.lowbandwidth %]
-	<a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a>'s <a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/friends/">Friends</a>
+	<a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a>'s <a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/friends/">Friends</a>
 [% ELSE %]
-	<a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a>'s <a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/friends/">Friends</a>
+	<a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a>'s <a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/friends/">Friends</a>
 [% END %]
 
 [% CASE 'noedit' %]

Modified: slashjp/branches/upstream/current/plugins/Journal/templates/friendsview;journal;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Journal/templates/friendsview;journal;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Journal/templates/friendsview;journal;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -18,8 +18,8 @@
 			<h3>[% diatribe.description %]</h3>
 		</div>
 		<div class="details">
-			Posted by <a href="[% gSkin.rootdir %]/~[% diatribe.nickname | strip_paramattr %]/journal/">[% diatribe.nickname | strip_literal %]</a> [% user.aton %]
-			<i>[% Slash.timeCalc(diatribe.date) %]</i> (<a href="[% gSkin.rootdir %]/~[% diatribe.nickname | strip_paramattr %]/journal/[% diatribe.id %]">#[% diatribe.id %]</a>)
+			Posted by <a href="[% constants.real_rootdir %]/~[% diatribe.nickname | strip_paramattr %]/journal/">[% diatribe.nickname | strip_literal %]</a> [% user.aton %]
+			<i>[% Slash.timeCalc(diatribe.date) %]</i> (<a href="[% constants.real_rootdir %]/~[% diatribe.nickname | strip_paramattr %]/journal/[% diatribe.id %]">#[% diatribe.id %]</a>)
 			[% IF diatribe.discussion %]
 				<br>
 				<a href="[% gSkin.rootdir %]/comments.pl?sid=[% diatribe.discussion %]">[% diatribe.commentcount %] Comment[% diatribe.commentcount != 1 ? "s" : "" %]</a>

Modified: slashjp/branches/upstream/current/plugins/Journal/templates/generic;journal;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Journal/templates/generic;journal;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Journal/templates/generic;journal;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -56,7 +56,7 @@
                                                                  </li>
                                                         [%- END %]
                                                         <li [% IF show_discussion %]class="journalid"[% END %]>
-                                                                <a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/journal/[% diatribe.id %]">#[% diatribe.id %]</a>
+                                                                <a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/journal/[% diatribe.id %]">#[% diatribe.id %]</a>
                                                          </li>
                                                 </ul>
 						</div>

Modified: slashjp/branches/upstream/current/plugins/Journal/templates/journalfriends;journal;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Journal/templates/journalfriends;journal;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Journal/templates/journalfriends;journal;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -39,9 +39,9 @@
 <input type="hidden" name="type" value="friend">[% END %]
 <table width="100%" border="0" cellpadding="2" cellspacing="0">
 [% FOREACH friend = friends %]
-    <tr><td valign="top"><a href="[% gSkin.rootdir %]/~[% friend.0 | strip_paramattr %]/">[% friend.0 %]</a></td>
+    <tr><td valign="top"><a href="[% constants.real_rootdir %]/~[% friend.0 | strip_paramattr %]/">[% friend.0 %]</a></td>
 [% IF friend.2 %]
-    <td valign="top"><a href="[% gSkin.rootdir %]/~[% friend.0 | strip_paramattr %]/journal/"><b>[% friend.3 %]</b></a></td>
+    <td valign="top"><a href="[% constants.real_rootdir %]/~[% friend.0 | strip_paramattr %]/journal/"><b>[% friend.3 %]</b></a></td>
     <td valign="top"><em>[% Slash.timeCalc(friend.2) %]</em></td>
 [% ELSE %]
     <td valign="top">&nbsp;</td>

Modified: slashjp/branches/upstream/current/plugins/Journal/templates/journallist;journal;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Journal/templates/journallist;journal;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Journal/templates/journallist;journal;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -39,7 +39,7 @@
 	</tr>
 [% FOREACH article = articles %]
 	<tr>
-		<td valign="top"><a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/journal/[% article.0 %]"><b>[% article.2 %]</b></a></td>
+		<td valign="top"><a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/journal/[% article.0 %]"><b>[% article.2 %]</b></a></td>
 		<td valign="top"><em>[% Slash.timeCalc(article.1) %]</em></td>
 	[%- IF showform %]
 		<td valign="top"><a href="[% gSkin.rootdir %]/journal.pl?op=edit&amp;id=[% article.0 %]">[edit]</a></td>

Modified: slashjp/branches/upstream/current/plugins/Journal/templates/journaltop;journal;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Journal/templates/journaltop;journal;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Journal/templates/journaltop;journal;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -36,7 +36,7 @@
 
 	[% FOREACH journal = journals %]
 		<tr>
-			<td valign="top"><a href="[% gSkin.rootdir %]/~[% journal.1 | strip_paramattr %]/journal/">[% journal.1 | strip_literal %]</a></td>
+			<td valign="top"><a href="[% constants.real_rootdir %]/~[% journal.1 | strip_paramattr %]/journal/">[% journal.1 | strip_literal %]</a></td>
 			<td valign="top">[% journal.0 %]</td>
 			<td valign="top"><em>[% Slash.timeCalc(journal.3) %]</em></td>
 		</tr>

Modified: slashjp/branches/upstream/current/plugins/Journal/templates/messagenew;journal;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Journal/templates/messagenew;journal;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Journal/templates/messagenew;journal;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -13,7 +13,7 @@
 __template__
 [% IF msg.mode == 1 %]
 
-<URL:[% gSkin.rootdir %]/~[% journal.nickname | strip_paramattr %]/journal/[% journal.id %]>
+<URL:[% constants.real_rootdir %]/~[% journal.nickname | strip_paramattr %]/journal/[% journal.id %]>
 
 [% ELSE %]
 

Modified: slashjp/branches/upstream/current/plugins/Journal/templates/slashdot;journal;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Journal/templates/slashdot;journal;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Journal/templates/slashdot;journal;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -31,7 +31,7 @@
 		[%- END; ELSIF user.uid == uid %]
 			<a href="[% gSkin.rootdir %]/journal.pl?op=edit&amp;id=[% diatribe.id %]">Enable Comments</a> |
 		[%- END %]
-			<a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/journal/[% diatribe.id %]">#[% diatribe.id %]</a>
+			<a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/journal/[% diatribe.id %]">#[% diatribe.id %]</a>
 		]
 	</div>
 

Modified: slashjp/branches/upstream/current/plugins/Messages/templates/zoo_msg;zoo;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Messages/templates/zoo_msg;zoo;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Messages/templates/zoo_msg;zoo;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -17,17 +17,17 @@
 
 <p>
 [% IF type == 'friend' || type == 'foe' || type == 'bitch' %]
-<b><a href="[% gSkin.rootdir %]/~[% zoo_user.nickname | strip_paramattr %]/"
+<b><a href="[% constants.real_rootdir %]/~[% zoo_user.nickname | strip_paramattr %]/"
 >[% zoo_user.nickname | strip_literal %]</a></b> ([% zoo_user.uid %]) has made you their <b>[% type %]</b>.
 [% ELSIF type == 'neutral' %]
-<b><a href="[% gSkin.rootdir %]/~[% zoo_user.nickname | strip_paramattr %]/"
+<b><a href="[% constants.real_rootdir %]/~[% zoo_user.nickname | strip_paramattr %]/"
 >[% zoo_user.nickname | strip_literal %]</a></b> ([% zoo_user.uid %]) has ceased their relationship with you.
 [% END %]
 </p>
 
 If you'd like to, view or edit your
-<a href="[% gSkin.rootdir %]/my/friends">friends</a> and 
-<a href="[% gSkin.rootdir %]/my/foes">foes</a>.
+<a href="[% constants.real_rootdir %]/my/friends">friends</a> and
+<a href="[% constants.real_rootdir %]/my/foes">foes</a>.
 
 [% ELSE %]
 

Modified: slashjp/branches/upstream/current/plugins/Search/templates/journalsearch;search;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Search/templates/journalsearch;search;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Search/templates/journalsearch;search;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -16,7 +16,7 @@
 [% FOREACH journal=entries %]
 	<div class="search-results">
 		<h4>
-			<a href="[% gSkin.rootdir %]/~[% journal.nickname | strip_paramattr %]/journal/[% journal.id %]">[% journal.description %]</a>
+			<a href="[% constants.real_rootdir %]/~[% journal.nickname | strip_paramattr %]/journal/[% journal.id %]">[% journal.description %]</a>
 		</h4>
 		<div class="data">
 			On [% Slash.timeCalc(journal.date) %]
@@ -25,7 +25,7 @@
 			[% journal.article %]
 		</div>
 		<div class="author">
-			Author: <a href="[% gSkin.rootdir %]/~[% journal.nickname | strip_paramattr %]/">[% journal.nickname | strip_literal %]</a>
+			Author: <a href="[% constants.real_rootdir %]/~[% journal.nickname | strip_paramattr %]/">[% journal.nickname | strip_literal %]</a>
 		</div>
 		[% IF journal.score %]
 		<div class="score">

Modified: slashjp/branches/upstream/current/plugins/Search/templates/usersearch;search;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Search/templates/usersearch;search;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Search/templates/usersearch;search;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -21,7 +21,7 @@
 			</li>
 		[% END %]
 			<li class="author">
-			<a href="[% gSkin.rootdir %]/~[% thisuser.nickname | strip_paramattr %]/">[% thisuser.nickname | strip_literal %]</a> &nbsp;
+			<a href="[% constants.real_rootdir %]/~[% thisuser.nickname | strip_paramattr %]/">[% thisuser.nickname | strip_literal %]</a> &nbsp;
 			[% IF thisuser.fakeemail %]
 				([% thisuser.uid %]) email: <a href="mailto:[% thisuser.fakeemail | strip_paramattr_nonhttp %]">[% thisuser.fakeemail | strip_literal %]</a>
 			[% ELSE %]
@@ -30,7 +30,7 @@
 			</li>
 		[% IF thisuser.journal_last_entry_date %]
 			<li class="data">
-				<a href="[% gSkin.rootdir %]/~[% thisuser.nickname | strip_paramattr %]/journal/"><em> Last Journal entry [% Slash.timeCalc(thisuser.journal_last_entry_date) %]</em></A>
+				<a href="[% constants.real_rootdir %]/~[% thisuser.nickname | strip_paramattr %]/journal/"><em> Last Journal entry [% Slash.timeCalc(thisuser.journal_last_entry_date) %]</em></A>
 			</li>
 		[% END %]
 		[% UNLESS user.is_anon %]

Modified: slashjp/branches/upstream/current/plugins/SearchToo/templates/journalsearch;searchtoo;default
===================================================================
--- slashjp/branches/upstream/current/plugins/SearchToo/templates/journalsearch;searchtoo;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/SearchToo/templates/journalsearch;searchtoo;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -12,11 +12,11 @@
 journalsearch
 __template__
 [% FOREACH journal=results.records %]
-	<b><a href="[% gSkin.rootdir %]/~[% journal.nickname | strip_paramattr %]/journal/[% journal.id %]">[% journal.description %]</a></b><br>
+	<b><a href="[% constants.real_rootdir %]/~[% journal.nickname | strip_paramattr %]/journal/[% journal.id %]">[% journal.description %]</a></b><br>
 	On [% Slash.timeCalc(journal.date) %]<br>
 	[% shorten( Slash.strip_notags(journal.article) ) %]<br>
 	
-	Author: <a href="[% gSkin.rootdir %]/~[% journal.nickname | strip_paramattr %]/">[% journal.nickname | strip_literal %]</a>
+	Author: <a href="[% constants.real_rootdir %]/~[% journal.nickname | strip_paramattr %]/">[% journal.nickname | strip_literal %]</a>
 	[% IF journal.score %]<br>
 	Score: ([% journal.score %])
 	[% END %]

Modified: slashjp/branches/upstream/current/plugins/SearchToo/templates/usersearch;searchtoo;default
===================================================================
--- slashjp/branches/upstream/current/plugins/SearchToo/templates/usersearch;searchtoo;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/SearchToo/templates/usersearch;searchtoo;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -20,7 +20,7 @@
 			</td>
 		[% END %]
 		<td valign="TOP">
-			<a href="[% gSkin.rootdir %]/~[% thisuser.nickname | strip_paramattr %]/">[% thisuser.nickname | strip_literal %]</a> &nbsp;
+			<a href="[% constants.real_rootdir %]/~[% thisuser.nickname | strip_paramattr %]/">[% thisuser.nickname | strip_literal %]</a> &nbsp;
 			[% IF thisuser.fakeemail %]
 				([% thisuser.uid %]) email: <a href="mailto:[% thisuser.fakeemail | strip_paramattr_nonhttp %]">[% thisuser.fakeemail | strip_literal %]</a> <br>
 			[% ELSE %]
@@ -29,7 +29,7 @@
 		</td>
 		[% IF thisuser.journal_last_entry_date %]
 			<td valign="TOP">
-				<a href="[% gSkin.rootdir %]/~[% thisuser.nickname | strip_paramattr %]/journal/"><b><em> Last Journal entry [% Slash.timeCalc(thisuser.journal_last_entry_date) %]</em></a>
+				<a href="[% constants.real_rootdir %]/~[% thisuser.nickname | strip_paramattr %]/journal/"><b><em> Last Journal entry [% Slash.timeCalc(thisuser.journal_last_entry_date) %]</em></a>
 			</td>
 		[% ELSE %]
 			<td valign="TOP">

Modified: slashjp/branches/upstream/current/plugins/Tags/Tags.pm
===================================================================
--- slashjp/branches/upstream/current/plugins/Tags/Tags.pm	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Tags/Tags.pm	2008-12-05 05:46:15 UTC (rev 864)
@@ -1125,8 +1125,6 @@
 			if ( $skid != $constants->{mainpage_skid} ) {
 				my $skin = $firehose->getSkin($skid);
 				$section_tag = $skin->{name};
-			} else {
-				$section_tag = 'mainpage';
 			}
 		}
 
@@ -2236,6 +2234,11 @@
 	return $self->getTagnamesByParam('exclude', '1');
 }
 
+sub getFirehoseExcludeTags {
+	my($self) = @_;
+	return $self->getTagnamesByParam('fh_exclude', '1');
+}
+
 sub getNegativeTags {
 	my($self) = @_;
 	return $self->getTagnamesByParam('posneg', '-');

Modified: slashjp/branches/upstream/current/plugins/Tags/templates/taghistory;misc;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Tags/templates/taghistory;misc;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Tags/templates/taghistory;misc;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -41,7 +41,7 @@
 			<td>[% tag.tagname %]</td>
 			<td align=left>[% tag.tag_clout %]</td>
 			<td align=left>[% tag.tagname_clout %]</td>
-			<td><a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]">[% nickname | strip_literal %]</a></td>
+			<td><a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]">[% nickname | strip_literal %]</a></td>
 			<td align=left>[% tag.user_clout %]</td>
 			<td>[% IF tag.inactivated %]<s>[% END %][% tag.created_at.replace(" ","&nbsp;") %][% IF tag.inactivated %]</s>[% END %]</td>
 		</tr>

Modified: slashjp/branches/upstream/current/plugins/Tags/templates/usertaghistory;users;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Tags/templates/usertaghistory;users;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Tags/templates/usertaghistory;users;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -27,7 +27,7 @@
 						<a href="[% tag.url.url %]" rel="nofollow">[% tag.url.bookmark.title || tag.url.validtitle || tag.url.initialtitle | strip_literal %]</a>
 					[% ELSIF tag.globj_type == "journals" %]
 						[% nick = Slash.db.getUser(tag.journal.uid, 'nickname') %]
-						<a href="[% gSkin.rootdir %]/~[% nick | fixparam %]/journal/[% tag.journal.id %]/">[% tag.journal.description | strip_literal %]</a>
+						<a href="[% constants.real_rootdir %]/~[% nick | fixparam %]/journal/[% tag.journal.id %]/">[% tag.journal.description | strip_literal %]</a>
 					[% ELSIF tag.globj_type == "submissions" %]
 						<a href="[% gSkin.rootdir %]/submit.pl?op=viewsub&amp;subid=[% tag.submission.subid %]">[% tag.submission.subj | strip_literal %]</a>
 					[% END %]

Modified: slashjp/branches/upstream/current/plugins/Tags/templates/usertags;users;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Tags/templates/usertags;users;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Tags/templates/usertags;users;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -18,9 +18,9 @@
 __template__
 [% thisnickname = useredit.nickname | strip_literal;
    url_nick = useredit.nickname | strip_paramattr;
-   url_base = "$gSkin.rootdir/~$url_nick/";
+   url_base = "$constants.real_rootdir/~$url_nick/";
    uid = useredit.uid;
-   title = "Tags by <a href=\"$gSkin.rootdir/~$url_nick/\">$thisnickname ($uid)</a>";
+   title = "Tags by <a href=\"$constants.real_rootdir/~$url_nick/\">$thisnickname ($uid)</a>";
    PROCESS user_titlebar tab_selected='tags' %]
 
 [% IF user.tags_canread_stories && tags_grouped.keys.size %]
@@ -38,7 +38,7 @@
 					<a href="[% tag.url.url %]" rel="nofollow">[% tag.url.bookmark.title || tag.url.validtitle || tag.url.initialtitle | strip_literal %]</a>
 				[% ELSIF tag.globj_type == "journals" %]
 					[% nick = Slash.db.getUser(tag.journal.uid, 'nickname') %]
-					<a href="[% gSkin.rootdir %]/~[% nick | fixparam %]/journal/[% tag.journal.id %]/">[% tag.journal.description | strip_literal %]</a>
+					<a href="[% constants.real_rootdir %]/~[% nick | fixparam %]/journal/[% tag.journal.id %]/">[% tag.journal.description | strip_literal %]</a>
 				[% END %]
 			</td>
 			</tr>

Modified: slashjp/branches/upstream/current/plugins/Tags/templates/usertagsforname;users;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Tags/templates/usertagsforname;users;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Tags/templates/usertagsforname;users;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -20,9 +20,9 @@
    thistagname = tagname | strip_literal;
    url_nick = useredit.nickname | strip_paramattr;
    url_tagname = tagname | strip_paramattr;
-   url_base = "$gSkin.rootdir/~$url_nick/";
+   url_base = "$constants.real_rootdir/~$url_nick/";
    uid = useredit.uid;
-   title = "Items tagged <a href=\"$gSkin.rootdir/tags/$url_tagname\">$thistagname</a> by <a href=\"$url_base\">$thisnickname ($uid)</a>";
+   title = "Items tagged <a href=\"$constants.real_rootdir/tags/$url_tagname\">$thistagname</a> by <a href=\"$url_base\">$thisnickname ($uid)</a>";
    UNLESS notitle; PROCESS user_titlebar tab_selected='tags'; END; %]
 
 [% IF user.tags_canread_stories && tags.size %]
@@ -37,7 +37,7 @@
 				<a href="[% tag.url.url %]" rel="nofollow">[% tag.url.bookmark.title || tag.url.validtitle || tag.url.initialtitle | strip_literal %]</a>
 			[% ELSIF tag.globj_type == "journals" %]
 				[% nick = Slash.db.getUser(tag.journal.uid, 'nickname') %]
-				<a href="[% gSkin.rootdir %]/~[% nick | fixparam %]/journal/[% tag.journal.id %]/">[% tag.journal.description | strip_literal %]</a>
+				<a href="[% constants.real_rootdir %]/~[% nick | fixparam %]/journal/[% tag.journal.id %]/">[% tag.journal.description | strip_literal %]</a>
 			[% END %]
 		</td>
 		</tr>

Modified: slashjp/branches/upstream/current/plugins/Users2/Users2.pm
===================================================================
--- slashjp/branches/upstream/current/plugins/Users2/Users2.pm	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Users2/Users2.pm	2008-12-05 05:46:15 UTC (rev 864)
@@ -34,7 +34,7 @@
 	my $uid_q = $self->sqlQuote($uid);
         return $self->sqlSelectAllHashref(
                 'cid',
-                "sid, cid, subject, UNIX_TIMESTAMP(date) as date",
+                "sid, cid, subject, points, reason, UNIX_TIMESTAMP(date) as date",
                 'comments',
                 "uid = $uid_q",
                 'order by date desc limit 5');
@@ -95,10 +95,10 @@
 
         # Get the latest n bookmarks. These could be contained in journals and
         # submissions, so we want journal size + submissions size + 5.
-        my $num_bookmarks = scalar(keys %$latest_journals) + scalar(keys %$latest_submissions) + 5;
+        #my $num_bookmarks = scalar(keys %$latest_journals) + scalar(keys %$latest_submissions) + 5;
         my $uid_q = $self->sqlQuote($uid);
         my $bookmarks_reader = getObject('Slash::Bookmark');
-        my $latest_bookmarks = $bookmarks_reader->getRecentBookmarksByUid($uid_q, $num_bookmarks);
+        my $latest_bookmarks = $bookmarks_reader->getRecentBookmarksByUid($uid_q, 5);
 
         # Make bookmarks unique against journals
         my $bookmark_count = 0;
@@ -193,7 +193,8 @@
         if ($tagnameid) {
 		# Show all user's tags for one particular tagname.
 		my $tags_hr =
-			$tags_reader->getGroupedTagsFromUser($uid, { tagnameid => $tagnameid });
+			$tags_reader->getGroupedTagsFromUser($uid, { tagnameid => $tagnameid },
+				{ limit => 5000, orderby => 'tagid', orderdir => 'DESC' });
                 my $tags_ar = $tags_hr->{$tagname} || [ ];
                 return slashDisplay('usertagsforname', {
                         useredit => $requested_user,
@@ -203,7 +204,8 @@
                 }, { Page => 'users', Return => 1 });
         } else {
                 my $tags_hr =
-			$tags_reader->getGroupedTagsFromUser($uid, { include_private => $private });
+			$tags_reader->getGroupedTagsFromUser($uid, { include_private => $private },
+				{ limit => 5000, orderby => 'tagid', orderdir => 'DESC' });
                 my $num_tags = 0;
                 for my $tn (keys %$tags_hr) {
                         $num_tags += scalar @{ $tags_hr->{$tn} };
@@ -327,6 +329,35 @@
 	return $fhid;
 }
 
+sub truncateMarquee {
+        my($self, $marquee, $len) = @_;
+
+        my $text;
+        my $linebreak = qr{(?:
+                <br>\s*<br> |
+                </?p> |
+                </(?:
+                        div | (?:block)?quote | [oud]l
+                )>
+        )}x;
+        my $min_chars = 50;
+        my $max_chars = $len || 1000;
+
+        if (length($marquee) < $min_chars) {
+                $text = $marquee;
+        } else {
+                $text = $1 if $marquee =~ m/^(.{$min_chars,$max_chars})?$linebreak/s;
+        }
+
+        $text ||= chopEntity($marquee, $max_chars);
+        local $Slash::Utility::Data::approveTag::admin = 1;
+        $text = strip_html($text);
+        $text = balanceTags($text, { admin => 1 });
+        $text = addDomainTags($text);
+
+        return $text;
+}
+
 sub DESTROY {
 	my($self) = @_;
 	$self->{_dbh}->disconnect if !$ENV{GATEWAY_INTERFACE} && $self->{_dbh};

Modified: slashjp/branches/upstream/current/plugins/Zoo/templates/alllist;zoo;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Zoo/templates/alllist;zoo;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Zoo/templates/alllist;zoo;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -17,7 +17,7 @@
 [% FOREACH item = people %]
     <tr>
 	<td valign="top">
-		<a href="[% gSkin.rootdir %]/~[% item.1 | strip_paramattr %]/">[% item.1 %]</a>
+		<a href="[% constants.real_rootdir %]/~[% item.1 | strip_paramattr %]/">[% item.1 %]</a>
 	</td>
 	<td valign="top">
 		[% PROCESS zoo_icons person=item.0 %]

Modified: slashjp/branches/upstream/current/plugins/Zoo/templates/confirm;zoo;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Zoo/templates/confirm;zoo;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Zoo/templates/confirm;zoo;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -21,7 +21,7 @@
 	<table>
 		<tr>
 			<td>
-				So do you want to remove your relationship with <b><a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname %]</a></b>?
+				So do you want to remove your relationship with <b><a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname %]</a></b>?
 			</td>
 			<td>
 				<input type="radio" name="type" value="neutral"[% constants.markup_checked_attribute IF type == 'neutral' %]>
@@ -63,24 +63,24 @@
 <table width="100%">
 	<tr>
 		<td>
-			<b>Consider <a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname %]</a> a Friend</b> <img src="[% constants.imagedir %]/fof.[% constants.badge_icon_ext %]" alt="Friends of Friends" title="Friends of Friends" width="[% constants.badge_icon_size_wide %]" height="[% constants.badge_icon_size %]">
-			&nbsp;<a href="[% gSkin.rootdir %]/my/comments">[% IF user.people_bonus_fof %]([% user.people_bonus_fof %])[% ELSE %](+0)[% END %]</a>
+			<b>Consider <a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname %]</a> a Friend</b> <img src="[% constants.imagedir %]/fof.[% constants.badge_icon_ext %]" alt="Friends of Friends" title="Friends of Friends" width="[% constants.badge_icon_size_wide %]" height="[% constants.badge_icon_size %]">
+			&nbsp;<a href="[% constants.real_rootdir %]/my/comments">[% IF user.people_bonus_fof %]([% user.people_bonus_fof %])[% ELSE %](+0)[% END %]</a>
 		</td>
 		<td>
-			<b>Consider <a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname %]</a> a Foe</b> <img src="[% constants.imagedir %]/eof.[% constants.badge_icon_ext %]" alt="Foes of Friends" title="Foes of Friends" width="[% constants.badge_icon_size_wide %]" height="[% constants.badge_icon_size %]">
-			&nbsp;<a href="[% gSkin.rootdir %]/my/comments">[% IF user.people_bonus_eof %]([% user.people_bonus_eof %])[% ELSE %](+0)[% END %]</a>
+			<b>Consider <a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname %]</a> a Foe</b> <img src="[% constants.imagedir %]/eof.[% constants.badge_icon_ext %]" alt="Foes of Friends" title="Foes of Friends" width="[% constants.badge_icon_size_wide %]" height="[% constants.badge_icon_size %]">
+			&nbsp;<a href="[% constants.real_rootdir %]/my/comments">[% IF user.people_bonus_eof %]([% user.people_bonus_eof %])[% ELSE %](+0)[% END %]</a>
 		</td>
 	</tr>
 	<tr>
 		<td valign="top">
 		[% FOREACH geek = mutual.${Slash.FOF} %]
-			<a href="[% gSkin.rootdir %]/~[% uids_2_nicknames.$geek.nickname | strip_paramattr %]/">[% uids_2_nicknames.$geek.nickname  | strip_literal %]</a>([% geek %]) [% PROCESS zoo_icons person=geek implied=Slash.FOF %]<br>
+			<a href="[% constants.real_rootdir %]/~[% uids_2_nicknames.$geek.nickname | strip_paramattr %]/">[% uids_2_nicknames.$geek.nickname  | strip_literal %]</a>([% geek %]) [% PROCESS zoo_icons person=geek implied=Slash.FOF %]<br>
 		[% END %]
 		&nbsp;
 		</td>
 		<td valign="top">
 		[% FOREACH geek = mutual.${Slash.EOF} %]
-			<a href="[% gSkin.rootdir %]/~[% uids_2_nicknames.$geek.nickname | strip_paramattr %]/">[% uids_2_nicknames.$geek.nickname  | strip_literal %]</a>([% geek %]) [% PROCESS zoo_icons person=geek implied=Slash.EOF %]<br>
+			<a href="[% constants.real_rootdir %]/~[% uids_2_nicknames.$geek.nickname | strip_paramattr %]/">[% uids_2_nicknames.$geek.nickname  | strip_literal %]</a>([% geek %]) [% PROCESS zoo_icons person=geek implied=Slash.EOF %]<br>
 		[% END %]
 		&nbsp;
 		</td>

Modified: slashjp/branches/upstream/current/plugins/Zoo/templates/data;zoo;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Zoo/templates/data;zoo;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Zoo/templates/data;zoo;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -22,28 +22,28 @@
 	[% constants.sitename %] Friend/Foe System
 
 [% CASE 'confirm' %]
-	Your Relationship with <a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) [% PROCESS zoo_icons person=uid implied="" %]
+	Your Relationship with <a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) [% PROCESS zoo_icons person=uid implied="" %]
 
 [% CASE 'nofriends' %]
-	<a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) is all alone in the world.</div></div>
+	<a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) is all alone in the world.</div></div>
 
 [% CASE 'nofans' %]
-	<a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) is either loved by all, or just invisible.</div></div>
+	<a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) is either loved by all, or just invisible.</div></div>
 
 [% CASE 'nofreaks' %]
-	<a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) is hated by no one.</div></div>
+	<a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) is hated by no one.</div></div>
 
 [% CASE 'nofoes' %]
-	<a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) loves everyone or plays their cards very close to their chest.</div></div>
+	<a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) loves everyone or plays their cards very close to their chest.</div></div>
 
 [% CASE 'nofriendsoffriends' %]
-	The friends of <a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) have no friends; they need better friends.</div></div>
+	The friends of <a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) have no friends; they need better friends.</div></div>
 
 [% CASE 'nofriendsenemies' %]
-	The friends of <a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) have no foes.</div></div>
+	The friends of <a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) have no foes.</div></div>
 
 [% CASE 'noall' %]
-	<a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) is unknown to the world.</div></div>
+	<a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) is unknown to the world.</div></div>
 
 [% CASE 'yournofriends' %]
 	[% returnme.data_constant = 1 %]
@@ -78,25 +78,25 @@
 	No one knows you exist.</div></div>
 
 [% CASE 'friendshead' %]
-	Friends of <a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) [% PROCESS zoo_icons person=uid implied="" %]
+	Friends of <a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) [% PROCESS zoo_icons person=uid implied="" %]
 
 [% CASE 'foeshead' %]
-	Foes of <a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) [% PROCESS zoo_icons person=uid implied="" %]
+	Foes of <a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) [% PROCESS zoo_icons person=uid implied="" %]
 
 [% CASE 'fanshead' %]
-	Fans of <a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) [% PROCESS zoo_icons person=uid implied="" %]
+	Fans of <a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) [% PROCESS zoo_icons person=uid implied="" %]
 
 [% CASE 'freakshead' %]
-	Freaks of <a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) [% PROCESS zoo_icons person=uid implied="" %]
+	Freaks of <a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) [% PROCESS zoo_icons person=uid implied="" %]
 
 [% CASE 'friendsenemieshead' %]
-	Foes of the Friends of <a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) [% PROCESS zoo_icons person=uid implied="" %]
+	Foes of the Friends of <a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) [% PROCESS zoo_icons person=uid implied="" %]
 
 [% CASE 'friendsoffriendshead' %]
-	Friends of the Friends of <a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) [% PROCESS zoo_icons person=uid implied="" %]
+	Friends of the Friends of <a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) [% PROCESS zoo_icons person=uid implied="" %]
 
 [% CASE 'allhead' %]
-	Relationships of <a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) [% PROCESS zoo_icons person=uid implied="" %]
+	Relationships of <a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname | strip_literal %]</a> ([% uid %]) [% PROCESS zoo_icons person=uid implied="" %]
 
 [% CASE 'yourfriendshead' %]
 	[% returnme.data_constant = 1 %]

Modified: slashjp/branches/upstream/current/plugins/Zoo/templates/plainlist;zoo;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Zoo/templates/plainlist;zoo;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Zoo/templates/plainlist;zoo;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -20,17 +20,17 @@
 [% FOREACH somebody = people %]
     <tr>
 	<td valign="top">
-		<a href="[% gSkin.rootdir %]/~[% somebody.1 | strip_paramattr %]/">[% somebody.1 %] ([% somebody.0 %])</a>[% PROCESS zoo_icons person=somebody.0 implied="" %]&nbsp;&nbsp;
+		<a href="[% constants.real_rootdir %]/~[% somebody.1 | strip_paramattr %]/">[% somebody.1 %] ([% somebody.0 %])</a>[% PROCESS zoo_icons person=somebody.0 implied="" %]&nbsp;&nbsp;
 	</td>
 	<td valign="top">
-		<a href="[% gSkin.rootdir %]/~[% somebody.1 | strip_paramattr %]/friends/">friends</a>&nbsp;
+		<a href="[% constants.real_rootdir %]/~[% somebody.1 | strip_paramattr %]/friends/">friends</a>&nbsp;
 	</td>
 	<td valign="top">
-		<a href="[% gSkin.rootdir %]/~[% somebody.1 | strip_paramattr %]/fans/">fans</a>&nbsp;
+		<a href="[% constants.real_rootdir %]/~[% somebody.1 | strip_paramattr %]/fans/">fans</a>&nbsp;
 	</td>
 	<td valign="top">
 	[% IF somebody.2 %]
-		&nbsp;&nbsp;<a href="[% gSkin.rootdir %]/~[% somebody.1 | strip_paramattr %]/journal/">[% Slash.timeCalc(somebody.2) %]</a>
+		&nbsp;&nbsp;<a href="[% constants.real_rootdir %]/~[% somebody.1 | strip_paramattr %]/journal/">[% Slash.timeCalc(somebody.2) %]</a>
 	[% ELSE %]
 		&nbsp;&nbsp;
 	[% END %]

Modified: slashjp/branches/upstream/current/plugins/Zoo/templates/zoohead;zoo;default
===================================================================
--- slashjp/branches/upstream/current/plugins/Zoo/templates/zoohead;zoo;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/plugins/Zoo/templates/zoohead;zoo;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -37,13 +37,13 @@
 [% UNLESS page == 'relation' %]
 	[% IF uid == user.uid && !user.is_anon %]
 	<ul class="menu">
-		<li><a href="[% gSkin.rootdir %]/my/friends/friends" class="begin">Friends of Friends</a></li>
-		<li><a href="[% gSkin.rootdir %]/my/friends/foes">Foes of Friends</a></li>
+		<li><a href="[% constants.real_rootdir %]/my/friends/friends" class="begin">Friends of Friends</a></li>
+		<li><a href="[% constants.real_rootdir %]/my/friends/foes">Foes of Friends</a></li>
 	</ul>
 	[% ELSE %]
 	<ul class="menu">
-		<li><a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/friends/friends" class="begin">Friends of Friends</a></li>
-		<li><a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/friends/foes">Foes of Friends</a></li>
+		<li><a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/friends/friends" class="begin">Friends of Friends</a></li>
+		<li><a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/friends/foes">Foes of Friends</a></li>
 	</ul>
 	[% END %]
 [% END; END %]

Modified: slashjp/branches/upstream/current/sql/mysql/defaults.sql
===================================================================
--- slashjp/branches/upstream/current/sql/mysql/defaults.sql	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/sql/mysql/defaults.sql	2008-12-05 05:46:15 UTC (rev 864)
@@ -840,7 +840,7 @@
 INSERT INTO vars (name, value, description) VALUES ('cur_performance_stats_lastid', '0', 'accesslogid to start searching at');
 INSERT INTO vars (name, value, description) VALUES ('cur_performance_stats_weeks', '8', 'number of weeks back to compare current stats to');
 INSERT INTO vars (name, value, description) VALUES ('currentqid',1,'The Current Question on the homepage pollbooth');
-INSERT INTO vars (name, value, description) VALUES ('cvs_tag_currentcode','T_2_5_0_231','The current cvs tag that the code was updated to - this does not affect site behavior but may be useful for your records');
+INSERT INTO vars (name, value, description) VALUES ('cvs_tag_currentcode','T_2_5_0_233','The current cvs tag that the code was updated to - this does not affect site behavior but may be useful for your records');
 INSERT INTO vars (name, value, description) VALUES ('datadir','/usr/local/slash/www.example.com','What is the root of the install for Slash');
 INSERT INTO vars (name, value, description) VALUES ('db_auto_increment_increment','1','If your master DB uses auto_increment_increment, i.e. multiple master replication, echo its value into this var');
 INSERT INTO vars (name, value, description) VALUES ('dbsparklines_disp','0','Display dbsparklines in the currentAdminUsers box?');

Modified: slashjp/branches/upstream/current/sql/mysql/upgrades
===================================================================
--- slashjp/branches/upstream/current/sql/mysql/upgrades	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/sql/mysql/upgrades	2008-12-05 05:46:15 UTC (rev 864)
@@ -5695,6 +5695,25 @@
 update firehose, firehose_deletedjournal set firehose.public='no' where firehose.id=firehose_deletedjournal.id;
 drop table firehose_deletedjournal;
 
+# For plugins/FireHose
+UPDATE firehose_view SET mode="fulltitle" where viewname="usertag";
+
+# For plugins/Users2
+ALTER TABLE shill_ids ADD COLUMN extra VARCHAR(40) DEFAULT '' NOT NULL;
+
+# 2008-11-25
+UPDATE vars SET value = 'T_2_5_0_232' WHERE name = 'cvs_tag_currentcode';
+
 # SLASHDOT LAST UPDATED HERE
 
+# for plugins/FireHose
+ALTER TABLE firehose ADD INDEX uid (uid);
 
+UPDATE menus SET value=REPLACE(value, '/~', '[% constants.real_rootdir %]/~') WHERE menu='users' AND value REGEXP '^/~';
+
+# For plugins/Users2
+ALTER TABLE shill_ids ADD COLUMN skid SMALLINT DEFAULT '0' NOT NULL;
+
+# 2008-11-26
+UPDATE vars SET value = 'T_2_5_0_233' WHERE name = 'cvs_tag_currentcode';
+

Modified: slashjp/branches/upstream/current/tagboxes/CommentScoreReason/CommentScoreReason.pm
===================================================================
--- slashjp/branches/upstream/current/tagboxes/CommentScoreReason/CommentScoreReason.pm	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/tagboxes/CommentScoreReason/CommentScoreReason.pm	2008-12-05 05:46:15 UTC (rev 864)
@@ -166,9 +166,12 @@
 		$top_entry_score = $firehose->getEntryPopularityForColorLevel(1);
 	}
 	$neediness *= $top_entry_score/$base_neediness;
-	# If we are only doing a certain percentage of neediness here,
-	# this would be the place to hash the comment cid with salt and
-	# drop its score to -50 unless it randomly qualified.
+
+	# Only a certain percentage of comments are allowed to be needy.
+	my $percent = $constants->{tagbox_csr_needinesspercent} || 5;
+	my $hex_percent = int(hex(substr(md5_hex($cid), -4)) * 100 / 65536);
+	$neediness = -50 if $hex_percent >= $percent;
+
 	# Minimum neediness is -50.
 	$neediness = -50 if $neediness < -50;
 
@@ -207,14 +210,14 @@
 		$cid, $new_score, $reasons->{$current_reason_mode}{name}, ($karma_bonus eq 'yes' ? 1 : 0), $new_karma_bonus, $neediness);
 
 	if ($firehose) {
-		# If it's already in the hose, don't try to re-create it --
-		# that may cause unnecessary score recalculations.
 		my $fhid = $firehose->getFireHoseIdFromGlobjid($affected_id);
-		if (!$fhid) {
-			$fhid = $self->addCommentToHoseIfAppropriate($firehose,
-				$affected_id, $cid, $neediness, $new_score);
+		if ($fhid) {
+			$firehose->setFireHose($fhid, { neediness => $neediness });
+		} else {
+			# For now, this tagbox is no longer responsible for adding
+			# needy comments to the hose;  we assume they're already
+			# there, and if not, we ignore.
 		}
-		$firehose->setFireHose($fhid, { neediness => $neediness }) if $fhid;
 	}
 
 	$self->sqlUpdate('comments', {
@@ -226,26 +229,26 @@
 
 # XXX hex_percent should be a library function, it's used by FHEditorPop too
 
-sub addCommentToHoseIfAppropriate {
-	my($self, $firehose, $globjid, $cid, $neediness, $score) = @_;
-	my $constants = getCurrentStatic();
+#sub addCommentToHoseIfAppropriate {
+#	my($self, $firehose, $globjid, $cid, $neediness, $score) = @_;
+#	my $constants = getCurrentStatic();
+#
+#	my $fhid = 0;
+#
+#	# If neediness exceeds a threshold, the comment has a chance of appearing.
+#	my $min = $constants->{tagbox_csr_minneediness} || 138;
+#	return 0 if $neediness < $min;
+#
+#	# Hash its cid;  if the last 4 hex digits interpreted as a fraction are
+#	# within the range determined, add it to the hose.
+#	my $percent = $constants->{tagbox_csr_needinesspercent} || 5;
+#	my $hex_percent = int(hex(substr(md5_hex($cid), -4)) * 100 / 65536);
+#	return 0 if $hex_percent >= $percent;
+#
+#	$fhid = $firehose->createUpdateItemFromComment($cid);
+#
+#	return $fhid;
+#}
 
-	my $fhid = 0;
-
-	# If neediness exceeds a threshold, the comment has a chance of appearing.
-	my $min = $constants->{tagbox_csr_minneediness} || 138;
-	return 0 if $neediness < $min;
-
-	# Hash its cid;  if the last 4 hex digits interpreted as a fraction are
-	# within the range determined, add it to the hose.
-	my $percent = $constants->{tagbox_csr_needinesspercent} || 5;
-	my $hex_percent = int(hex(substr(md5_hex($cid), -4)) * 100 / 65536);
-	return 0 if $hex_percent >= $percent;
-
-	$fhid = $firehose->createItemFromComment($cid);
-
-	return $fhid;
-}
-
 1;
 

Modified: slashjp/branches/upstream/current/tagboxes/FHEditorPop/FHEditorPop.pm
===================================================================
--- slashjp/branches/upstream/current/tagboxes/FHEditorPop/FHEditorPop.pm	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/tagboxes/FHEditorPop/FHEditorPop.pm	2008-12-05 05:46:15 UTC (rev 864)
@@ -135,12 +135,16 @@
 			$color_level = $this_color_level if $this_color_level < $color_level;
 		}
 	} elsif ($type eq "comments") {
-		my $comment = $self->getComment($target_id);
-		my $score = Slash::Utility::Comments::constrain_score($comment->{points} + $comment->{tweak});
-		   if ($score >= 3) {	$color_level = 4 }
-		elsif ($score >= 2) {	$color_level = 5 }
-		elsif ($score >= 1) {	$color_level = 6 }
-		else {			$color_level = 7 }
+		if (0) {
+			my $comment = $self->getComment($target_id);
+			my $score = Slash::Utility::Comments::constrain_score($comment->{points} + $comment->{tweak});
+			   if ($score >= 3) {	$color_level = 4 }
+			elsif ($score >= 2) {	$color_level = 5 }
+			elsif ($score >= 1) {	$color_level = 6 }
+			else {			$color_level = 7 }
+		} else {
+			$color_level = 8;
+		}
 	}
 	$popularity = $firehose->getEntryPopularityForColorLevel($color_level) + $extra_pop;
 
@@ -194,6 +198,10 @@
 		}
 	}
 
+	# If color level was set to black, none of the nods matter, it just never
+	# shows up.
+	$popularity = -50 if $color_level == 8;
+
 	# If this is a comment, it normally only shows up for an editor if
 	# it's one of a select few.
 	if ($fhitem->{type} eq 'comment'

Modified: slashjp/branches/upstream/current/tagboxes/FireHoseScores/FireHoseScores.pm
===================================================================
--- slashjp/branches/upstream/current/tagboxes/FireHoseScores/FireHoseScores.pm	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/tagboxes/FireHoseScores/FireHoseScores.pm	2008-12-05 05:46:15 UTC (rev 864)
@@ -194,6 +194,10 @@
 		$popularity += $extra_pop;
 	}
 
+	# If color level was set to black, none of the nods matter, it just never
+	# shows up.
+	$popularity = -50 if $color_level == 8;
+
 	# If this is spam, or contains a spam URL, its score goes way down.
 	if ($fhitem->{is_spam} eq 'yes' || $firehose_db->itemHasSpamURL($fhitem)) {
 		my $max = defined($constants->{firehose_spam_score})
@@ -254,14 +258,19 @@
 			$color_level = $this_color_level if $this_color_level < $color_level;
 		}
 	} elsif ($type eq "comments") {
-		my $comment = $self->getComment($target_id);
-		my $score = constrain_score($comment->{points} + $comment->{tweak});
-		if ($score >= 5) {
-			$color_level = 5;
-		} elsif ($score >= 2) {
-			$color_level = 6
+		if (0) {
+			my $comment = $self->getComment($target_id);
+			my $score = constrain_score($comment->{points} + $comment->{tweak});
+			if ($score >= 5) {
+				$color_level = 5;
+			} elsif ($score >= 2) {
+				$color_level = 6
+			} else {
+				$color_level = 7;
+			}
 		} else {
-			$color_level = 7;
+			# temporary measure
+			$color_level = 8;
 		}
 	}
 	return($color_level, $extra_pop);

Modified: slashjp/branches/upstream/current/themes/slashcode/htdocs/users2.pl
===================================================================
--- slashjp/branches/upstream/current/themes/slashcode/htdocs/users2.pl	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/themes/slashcode/htdocs/users2.pl	2008-12-05 05:46:15 UTC (rev 864)
@@ -384,6 +384,10 @@
 	}
 
 	# Figure out what the op really is.
+	if ($gSkin->{skid} == 36 && (! $form->{op} && ! ($form->{uid} || $form->{nick}))) {
+		# Default to ThinkGeek user if we're in the ThinkGeek skin
+		$form->{uid} = 1387321;
+	}
 	$op = 'userinfo' if (! $form->{op} && ($form->{uid} || $form->{nick}));
 	$op ||= $user->{is_anon} ? 'userlogin' : 'userinfo';
 	if ($user->{is_anon} && ( ($ops->{$op}{seclev} > 0) || ($op =~ /^newuserform|mailpasswdform|displayform$/) )) {
@@ -1068,8 +1072,13 @@
 	# showInfo's header information is delayed until here, because
 	# the target user's info is not available until here.
 	vislenify($requested_user);
+	$requested_user->{shill_info} = $reader->getShillInfo($requested_user->{shill_id});
         my $msg = getMessage('user_header', { useredit => $requested_user, fieldkey => $fieldkey });
-        header($msg, '', { shill_id => $requested_user->{shill_id}, U2 => 1 }) or return;
+        header($msg, '', {
+		shill_id   => $requested_user->{shill_id},
+		shill_info => $requested_user->{shill_info},
+		U2         => 1
+	}) or return;
 	# This is a hardcoded position, bad idea and should be fixed -Brian
 	# Yeah, we should pull this into a template somewhere...
 	print getMessage('note', { note => $hr->{note} }) if defined $hr->{note};
@@ -1359,6 +1368,18 @@
 		my $tagshist;
 		if ($tags_reader) {
 			$tagshist = $tags_reader->getGroupedTagsFromUser($requested_user->{uid}, { orderby => 'created_at', orderdir => 'DESC', include_private => 1, limit => 100 });
+			# This prevents the slashbox from being populated with only private tags,
+			# which leaves it visible but empty for non-admins.
+			my $all_private = 1;
+			if ($tagshist && !$user->{is_admin}) {
+				foreach my $tag (keys %$tagshist) {
+					if (!$tagshist->{$tag}->[0]->{private}) {
+						$all_private = 0;
+						last;
+					}
+				}
+				$tagshist = '' if ($all_private);
+			}
 		}
 
 		# Comments slashbox
@@ -1414,13 +1435,9 @@
 			$not_fhid = $users2->getMarqueeFireHoseId($marquee);
 		}
 
-		if ($form->{dp} eq 'firehose' || $form->{dp} =~ /^journal/ || $form->{dp} eq 'submissions' || $form->{dp} eq 'bookmarks' || $form->{dp} eq 'usertag') {
+		if ($main_view || $form->{dp} eq 'firehose' || $form->{dp} =~ /^journal/ || $form->{dp} eq 'submissions' || $form->{dp} eq 'bookmarks' || $form->{dp} eq 'usertag') {
 
 			$form->{listonly} = 1;
-			$form->{mode} = "full";
-			$form->{color} = "black";
-			$form->{orderby} = "createtime";
-			$form->{orderdir} = "DESC";
 			$form->{skipmenu} = 1;
 		}
 

Modified: slashjp/branches/upstream/current/themes/slashcode/templates/currentAdminUsers;misc;default
===================================================================
--- slashjp/branches/upstream/current/themes/slashcode/templates/currentAdminUsers;misc;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/themes/slashcode/templates/currentAdminUsers;misc;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -28,7 +28,7 @@
 	%]
 
 	<tr class="data_hl1"><td class="data_bgc1">
-		<a href="[% gSkin.rootdir %]/~[% id | strip_paramattr %]/"><b>[% id %]</b></a>
+		<a href="[% constants.real_rootdir %]/~[% id | strip_paramattr %]/"><b>[% id %]</b></a>
 	</td><td>
 		[% lastsecs %]
 		[% IF lastsecs and lasttitle %]&nbsp;/&nbsp;<a href="[% constants.absolutedir_secure %]/[% IF last_subid %]submit.pl?op=viewsub&amp;subid=[% last_subid %][% ELSIF last_sid %]/admin.pl?op=edit&amp;sid=[% last_sid %][% END %]">[% lasttitle %]</a>

Modified: slashjp/branches/upstream/current/themes/slashcode/templates/dispStory;misc;default
===================================================================
--- slashjp/branches/upstream/current/themes/slashcode/templates/dispStory;misc;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/themes/slashcode/templates/dispStory;misc;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -56,7 +56,7 @@
 			thisjournal = journal.get(story.journal_id);
 			IF thisjournal && thisjournal.uid;
 				thisuser    = Slash.db.getUser(thisjournal.uid); %]
-		Journal written by <a href="[% constants.rootdir %]/~[% thisuser.nickname | strip_paramattr %]/journal/"
+		Journal written by <a href="[% constants.real_rootdir %]/~[% thisuser.nickname | strip_paramattr %]/journal/"
 			>[% thisuser.nickname | strip_literal %] ([% thisjournal.uid %])</a> and [%
 			ELSIF story.by %]
 		Written by [% story.by | strip_literal %] and [%

Modified: slashjp/branches/upstream/current/themes/slashcode/templates/friendsview;index;default
===================================================================
--- slashjp/branches/upstream/current/themes/slashcode/templates/friendsview;index;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/themes/slashcode/templates/friendsview;index;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -17,7 +17,7 @@
 __template__
 <ul>
 [% FOR article = articles %]
-	<li><a href="[% gSkin.rootdir %]/~[% article.nickname | strip_paramattr %]/journal/[% article.id %]">[% article.description %]</a> - <a href="[% gSkin.rootdir %]/~[% article.nickname | strip_paramattr %]">[% article.nickname | strip_literal %]</a>
+	<li><a href="[% constants.real_rootdir %]/~[% article.nickname | strip_paramattr %]/journal/[% article.id %]">[% article.description %]</a> - <a href="[% constants.real_rootdir %]/~[% article.nickname | strip_paramattr %]">[% article.nickname | strip_literal %]</a>
 [% END %]
 </ul>
 __seclev__

Modified: slashjp/branches/upstream/current/themes/slashcode/templates/linkrel;misc;default
===================================================================
--- slashjp/branches/upstream/current/themes/slashcode/templates/linkrel;misc;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/themes/slashcode/templates/linkrel;misc;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -67,7 +67,7 @@
 
 ELSIF env.script_name.search('journal\.pl');
 	IF link.uid && link.nickname; tmp = BLOCK -%]
-<link rel="author"    title="[% link.nickname | strip_attribute %]" href="[% gSkin.rootdir %]/~[% link.nickname | strip_paramattr %]/">
+<link rel="author"    title="[% link.nickname | strip_attribute %]" href="[% constants.real_rootdir %]/~[% link.nickname | strip_paramattr %]/">
 	[%- END; linkrels.push(tmp); tmp = BLOCK -%]
 <link rel="alternate" title="[% link.nickname | strip_attribute %]'s Journal RSS" href="[% PROCESS rsslink_journal rsslink_style = 'journal' %]" type="application/rss+xml">
 	[%- END; linkrels.push(tmp); tmp = BLOCK -%]
@@ -89,7 +89,7 @@
 
 ELSIF env.script_name.search('messages\.pl');
 	IF !user.is_anon; tmp = BLOCK -%]
-<link rel="alternate" title="[% constants.sitename | strip_attribute %] Messages RSS" href="[% gSkin.rootdir %]/my/inbox/rss/[% Slash.getPublicLogToken() | fixparam %]" type="application/rss+xml">
+<link rel="alternate" title="[% constants.sitename | strip_attribute %] Messages RSS" href="[% constants.real_rootdir %]/my/inbox/rss/[% Slash.getPublicLogToken() | fixparam %]" type="application/rss+xml">
 	[%- END; linkrels.push(tmp); END;
 ELSIF env.script_name.search('bookmark\.pl');
 	tmp = BLOCK -%]
@@ -101,7 +101,7 @@
 
 ELSE; # default author link, where author is a nickname
 	    IF link.author; tmp = BLOCK -%]
-<link rel="author"    title="[% link.author | strip_attribute %]" href="[% gSkin.rootdir %]/~[% link.author | strip_paramattr %]/">
+<link rel="author"    title="[% link.author | strip_attribute %]" href="[% constants.real_rootdir %]/~[% link.author | strip_paramattr %]/">
 	[%- END; linkrels.push(tmp); END;
 
 END %]

Modified: slashjp/branches/upstream/current/themes/slashcode/templates/printCommNoArchive;misc;default
===================================================================
--- slashjp/branches/upstream/current/themes/slashcode/templates/printCommNoArchive;misc;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/themes/slashcode/templates/printCommNoArchive;misc;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -24,7 +24,7 @@
 	[% ELSE %]
 		[%- d_nickname = Slash.db.getUser(discussion.uid, 'nickname') -%]
 		[%- msg = BLOCK -%]
-This discussion was created[% IF discussion.uid %] by <a href="[% gSkin.rootdir %]/~[% d_nickname | strip_paramattr %]/">[% d_nickname %] ([% discussion.uid %])</a>[% END %] as
+This discussion was created[% IF discussion.uid %] by <a href="[% constants.real_rootdir %]/~[% d_nickname | strip_paramattr %]/">[% d_nickname %] ([% discussion.uid %])</a>[% END %] as
 		[%- END -%]
 		[% IF discussion.commentstatus == 'friends_only' %]
 			[% type = "Friends only" %]

Modified: slashjp/branches/upstream/current/themes/slashcode/templates/u2MainView;users;default
===================================================================
--- slashjp/branches/upstream/current/themes/slashcode/templates/u2MainView;users;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/themes/slashcode/templates/u2MainView;users;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -29,7 +29,8 @@
 </div>
 [% END %]
 
-[% PROCESS u2Menu 
+[% PROCESS u2Menu
+	main_view=main_view
         data_pane=data_pane
         comments_size=latest_comments.size
         journals_size=latest_journals.size
@@ -45,6 +46,7 @@
 
         [% PROCESS u2UserBoxes
                 latest_comments=latest_comments
+		reasons=reasons
                 latest_journals=latest_journals
                 latest_submissions=latest_submissions
                 latest_bookmarks=latest_bookmarks
@@ -117,7 +119,7 @@
                                 ELSIF tagshist.$tag.0.globj_type == "journals";
                                         nick = Slash.db.getUser(tagshist.$tag.0.journal.uid, 'nickname');
                                         '<a href="';
-                                        gSkin.rootdir;
+                                        constants.real_rootdir;
                                         '/~';
                                         nick | fixparam;
                                         '/journal/';
@@ -174,12 +176,12 @@
                 <p>
                 <div id="friendsmenu">
                         <ul>
-                        <li><a href="[% gSkin.rootdir %]/~[% useredit.nickname | strip_paramattr %]/friends">Friends</a></li>
-                        <li><a href="[% gSkin.rootdir %]/~[% useredit.nickname | strip_paramattr %]/fans">Fans</a></li>
-                        <li><a href="[% gSkin.rootdir %]/~[% useredit.nickname | strip_paramattr %]/foes">Foes</a></li>
-                        <li><a href="[% gSkin.rootdir %]/~[% useredit.nickname | strip_paramattr %]/freaks">Freaks</a></li>
-                        <li><a href="[% gSkin.rootdir %]/~[% useredit.nickname | strip_paramattr %]/friends/friends">Friends of Friends</a></li>
-                        <li><a href="[% gSkin.rootdir %]/~[% useredit.nickname | strip_paramattr %]/friends/foes">Foes of Friends</a></li>
+                        <li><a href="[% constants.real_rootdir %]/~[% useredit.nickname | strip_paramattr %]/friends">Friends</a></li>
+                        <li><a href="[% constants.real_rootdir %]/~[% useredit.nickname | strip_paramattr %]/fans">Fans</a></li>
+                        <li><a href="[% constants.real_rootdir %]/~[% useredit.nickname | strip_paramattr %]/foes">Foes</a></li>
+                        <li><a href="[% constants.real_rootdir %]/~[% useredit.nickname | strip_paramattr %]/freaks">Freaks</a></li>
+                        <li><a href="[% constants.real_rootdir %]/~[% useredit.nickname | strip_paramattr %]/friends/friends">Friends of Friends</a></li>
+                        <li><a href="[% constants.real_rootdir %]/~[% useredit.nickname | strip_paramattr %]/friends/foes">Foes of Friends</a></li>
                         </ul>
                 </div>
                 [% relations_datapane %]

Modified: slashjp/branches/upstream/current/themes/slashcode/templates/u2Menu;users;default
===================================================================
--- slashjp/branches/upstream/current/themes/slashcode/templates/u2Menu;users;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/themes/slashcode/templates/u2Menu;users;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -15,14 +15,15 @@
 [% tilde = '^'; IF constants.u2; tilde = '~'; END; %]
 <div class="nav">
 <ul class="menu" id="tablist">
-<li[% IF data_pane == 'firehose' || data_pane == '' %] class="active"[% END %]><a href="[% gSkin.rootdir %]/[% tilde; nickname | strip_paramattr %]/firehose">Firehose</a></li>
+<li[% IF main_view %] class="active"[% END %]><a href="[% gSkin.rootdir %]/[% tilde; nickname | strip_paramattr %]">[% nickname | strip_literal %]</a></li>
+<li[% IF data_pane == 'firehose' && !main_view %] class="active"[% END %]><a href="[% gSkin.rootdir %]/[% tilde; nickname | strip_paramattr %]/firehose">Firehose</a></li>
 [% IF comments_size != 0 %]<li[% IF data_pane == 'comments' %] class="active"[% END %]><a href="[% gSkin.rootdir %]/[% tilde; nickname | strip_paramattr %]/comments">Comments</a></li>[% END %]
 [% IF journals_size != 0 %]<li[% IF data_pane == 'journal' %] class="active"[% END %]><a href="[% gSkin.rootdir %]/[% tilde; nickname | strip_paramattr %]/journal">Journals</a></li>[% END %]
 [% IF submissions_size != 0 %]<li[% IF data_pane == 'submissions' %] class="active"[% END %]><a href="[% gSkin.rootdir %]/[% tilde; nickname | strip_paramattr %]/submissions">Submissions</a></li>[% END %]
 [% IF bookmarks_size != 0 %]<li[% IF data_pane == 'bookmarks' %] class="active"[% END %]><a href="[% gSkin.rootdir %]/[% tilde; nickname | strip_paramattr %]/bookmarks">Bookmarks</a></li>[% END %]
 <li[% IF data_pane == 'friends' %] class="active"[% END %]><a href="[% gSkin.rootdir %]/[% tilde; nickname | strip_paramattr %]/friends">Friends</a></li>
 [% IF tagshist_size > 2 || data_pane == "usertag" %]<li[% IF data_pane == 'tags' || data_pane == 'usertag' %] class="active"[% END %]><a href="[% gSkin.rootdir %]/[% tilde; nickname | strip_paramattr %]/tags">Tags</a></li>[% END %]
-[% IF is_admin %]<li[% IF data_pane == 'admin' %] class="active"[% END %]><a href="[% gSkin.rootdir %]/[% tilde; nickname | strip_paramattr %]">Admin</a></li>[% END %]
+[% IF is_admin %]<li[% IF data_pane == 'admin' %] class="active"[% END %]><a href="[% gSkin.rootdir %]/[% tilde; nickname | strip_paramattr %]/admin">Admin</a></li>[% END %]
 </ul>
 </div>
 

Modified: slashjp/branches/upstream/current/themes/slashcode/templates/u2UserBio;users;default
===================================================================
--- slashjp/branches/upstream/current/themes/slashcode/templates/u2UserBio;users;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/themes/slashcode/templates/u2UserBio;users;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -21,7 +21,8 @@
         <div class="content" id="user_bio_content">
         [%
                 IF user.uid == useredit.uid OR user.is_admin;
-                        IF useredit.realname; useredit.realname | strip_literal; ELSE; '(no real name given)<br>'; END;
+                        IF useredit.realname; useredit.realname | strip_literal; ELSE; '(no real name given)'; END;
+			'<br>';
                         '<a href="mailto:';
                         useredit.realemail | strip_paramattr; '">';
                         Slash.ellipsify(Slash.strip_literal(useredit.realemail)); '</a>';
@@ -39,7 +40,6 @@
                                 '(email not shown publicly)';
                         END;
                 ELSE;
-                        '<br>&nbsp;&nbsp;';
                         IF useredit.fakeemail;
                                 '<a href="mailto:';
                                 useredit.fakeemail | strip_paramattr; '">';

Modified: slashjp/branches/upstream/current/themes/slashcode/templates/u2UserBoxes;users;default
===================================================================
--- slashjp/branches/upstream/current/themes/slashcode/templates/u2UserBoxes;users;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/themes/slashcode/templates/u2UserBoxes;users;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -12,16 +12,35 @@
 __name__
 u2UserBoxes
 __template__
+[% tilde = '^'; IF constants.u2; tilde = '~'; END; %]
 [% IF latest_comments.size != 0 %]
 <div class="block" id="latest_comments">
         <div class="title" id="latest_comments_title">
-                <h4>Comments</h4>
+                <h4><a href="[% gSkin.rootdir %]/[% tilde; useredit.nickname | strip_paramattr %]/comments">Comments</a></h4>
         </div>
 
         <div class="content" id="latest_comments_content">
                 <ul>
                 [% FOREACH cid = latest_comments.keys.sort %]
-                        <li><a href="[% gSkin.rootdir %]/comments.pl?sid=[% latest_comments.$cid.sid %]&cid=[% cid %]">[% latest_comments.$cid.subject %]</a></li>
+			[%
+                        reason_num = '';
+                        reason_text = '';
+                        IF latest_comments.$cid.points > 1;
+                                reason_num = latest_comments.$cid.reason;
+                                reason_text = reasons.$reason_num.name;
+                        END;
+                        %]
+                        <li><a href="[% gSkin.rootdir %]/comments.pl?sid=[% latest_comments.$cid.sid %]&cid=[% cid %]">[% latest_comments.$cid.subject %]</a>
+			[%
+                        IF latest_comments.$cid.points > 1;
+                                '&nbsp;(Score:';latest_comments.$cid.points;
+                                IF reason_text != 'Normal';
+                                        ',&nbsp;';reason_text;
+                                END;
+                                ')';
+                        END;
+                        %]
+			</li>
                 [% END %]
                 </ul>
         </div>
@@ -31,12 +50,12 @@
 [% IF latest_journals.size != 0 %]
 <div class="block" id="latest_journals">
         <div class="title" id="latest_journals_title">
-                <h4>Journal Entries</h4>
+                <h4><a href="[% gSkin.rootdir %]/[% tilde; useredit.nickname | strip_paramattr %]/journal">Journal Entries</a></h4>
         </div>
         <div class="content" id="latest_journals_content">
                 <ul>
                 [% FOREACH jid = latest_journals.keys.sort %]
-                        <li><a href="[% gSkin.rootdir %]/~[% useredit.nickname | strip_paramattr %]/journal/[% latest_journals.$jid.id %]">[% latest_journals.$jid.description %]</a><br></li>
+                        <li><a href="[% constants.real_rootdir %]/~[% useredit.nickname | strip_paramattr %]/journal/[% latest_journals.$jid.id %]">[% latest_journals.$jid.description %]</a><br></li>
                 [% END %]
                 </ul>
         </div>
@@ -46,7 +65,7 @@
 [% IF latest_submissions.size != 0 %]
 <div class="block" id="latest_submissions">
         <div class="title" id="latest_submissions_title">
-                <h4>Submissions</h4>
+                <h4><a href="[% gSkin.rootdir %]/[% tilde; useredit.nickname | strip_paramattr %]/submissions">Submissions</a></h4>
         </div>
 
         <div class="content" id="latest_submissions_content">
@@ -62,7 +81,7 @@
 [% IF latest_bookmarks.size != 0 %]
 <div class="block" id="latest_bookmarks">
         <div class="title" id="latest_bookmarks_title">
-                <h4>Bookmarks </h4>
+                <h4><a href="[% gSkin.rootdir %]/[% tilde; useredit.nickname | strip_paramattr %]/bookmarks">Bookmarks</a></h4>
         </div>
 
         <div class="content" id="latest_bookmarks_content">
@@ -82,13 +101,13 @@
 [% IF latest_friends.size != 0 %]
 <div class="block" id="latest_friends">
         <div class="title" id="latest_friends_title">
-                <h4>Friends</h4>
+                <h4><a href="[% gSkin.rootdir %]/[% tilde; useredit.nickname | strip_paramattr %]/friends">Friends</a></h4>
         </div>
 
         <div class="content" id="latest_friends_content">
                 <ul>
                 [% FOREACH fid = latest_friends.keys.sort %]
-                        <li><a href="[% gSkin.rootdir %]/~[% latest_friends.$fid.nickname %]">[% latest_friends.$fid.nickname %]</a></li>
+                        <li><a href="[% constants.real_rootdir %]/~[% latest_friends.$fid.nickname %]">[% latest_friends.$fid.nickname %]</a></li>
                 [% END %]
                 </ul>
         </div>
@@ -98,7 +117,7 @@
 [% IF tagshist.size > 2 %]
 <div class="block" id="latest_tags">
         <div class="title" id="latest_tags_title">
-                <h4>Tags</h4>
+                <h4><a href="[% gSkin.rootdir %]/[% tilde; useredit.nickname | strip_paramattr %]/tags">Tags</a></h4>
         </div>
 
         <div class="content" id="latest_tags_content">
@@ -108,7 +127,7 @@
                         [% LAST IF tags_counter == 5 %]
                         [% NEXT IF !is_admin && tagshist.$tag.0.private == 1 %] 
                         <li>
-                        <a href="[% gSkin.rootdir %]/~[% useredit.nickname | strip_paramattr %]/tags/[% tagshist.$tag.0.tagname %]">[% tagshist.$tag.0.tagname %]</a>&nbsp;([% tagshist.$tag.0.globj_type %])
+                        <a href="[% constants.real_rootdir %]/~[% useredit.nickname | strip_paramattr %]/tags/[% tagshist.$tag.0.tagname %]">[% tagshist.$tag.0.tagname %]</a>&nbsp;([% tagshist.$tag.0.globj_type %])
                         </li>
                         [% tags_counter = tags_counter + 1 %]
                 [% END %]

Modified: slashjp/branches/upstream/current/themes/slashcode/templates/udiscuss_list;comments;default
===================================================================
--- slashjp/branches/upstream/current/themes/slashcode/templates/udiscuss_list;comments;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/themes/slashcode/templates/udiscuss_list;comments;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -25,7 +25,7 @@
 	[% nickname = Slash.db.getUser(discussion.uid, 'nickname') %]
 	<li><a href="[% gSkin.rootdir %]/comments.pl?sid=[% discussion.id %]">[%
 IF discussion.title.defined %][% discussion.title %][% ELSE %]untitled[% END %]</a>
-	created by <a href="[% gSkin.rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname %]</a> on [% Slash.timeCalc(discussion.ts) %]
+	created by <a href="[% constants.real_rootdir %]/~[% nickname | strip_paramattr %]/">[% nickname %]</a> on [% Slash.timeCalc(discussion.ts) %]
 [% END %]
 </multicol>
 <p>

Modified: slashjp/branches/upstream/current/themes/slashcode/templates/userInfo2;users;default
===================================================================
--- slashjp/branches/upstream/current/themes/slashcode/templates/userInfo2;users;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/themes/slashcode/templates/userInfo2;users;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -170,7 +170,7 @@
                 <div class="content" id="latest_journals_content">
                         <ul>
                         [% FOREACH jid = latest_journals.keys.sort %]
-                        <li><a href="[% gSkin.rootdir %]/~[% useredit.nickname %]/journal/[% latest_journals.$jid.id %]">[% latest_journals.$jid.description %]</a><br></li>
+                        <li><a href="[% constants.real_rootdir %]/~[% useredit.nickname %]/journal/[% latest_journals.$jid.id %]">[% latest_journals.$jid.description %]</a><br></li>
                         [% END %]
                         </ul>
                 </div>
@@ -218,7 +218,7 @@
                 <div class="content" id="latest_friends_content">
                         <ul>
                         [% FOREACH fid = latest_friends.keys.sort %]
-                        <li><a href="[% gSkin.rootdir %]/~[% latest_friends.$fid.nickname %]">[% latest_friends.$fid.nickname %]</a></li>
+                        <li><a href="[% constants.real_rootdir %]/~[% latest_friends.$fid.nickname %]">[% latest_friends.$fid.nickname %]</a></li>
                         [% END %]
                         </ul>
                 </div>

Modified: slashjp/branches/upstream/current/themes/slashcode/templates/userInfo;users;default
===================================================================
--- slashjp/branches/upstream/current/themes/slashcode/templates/userInfo;users;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/themes/slashcode/templates/userInfo;users;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -64,7 +64,7 @@
 	[% PROCESS titlebar title="Last Journal Entry" %]
 			[% Slash.createMenu("journal", style => "tabbed") %]
 			<b>
-				<a href="[% gSkin.rootdir %]/~[% useredit.nick_plain | strip_paramattr %]/journal/">
+				<a href="[% constants.real_rootdir %]/~[% useredit.nick_plain | strip_paramattr %]/journal/">
 					[% lastjournal.description | strip_notags %]
 				</a>
 			</b>,

Modified: slashjp/branches/upstream/current/themes/slashcode/templates/user_titlebar;misc;default
===================================================================
--- slashjp/branches/upstream/current/themes/slashcode/templates/user_titlebar;misc;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/themes/slashcode/templates/user_titlebar;misc;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -27,91 +27,91 @@
 	url_nick = useredit.nickname | strip_paramattr;
 	zi = PROCESS zoo_icons person=uid implied="";
 	title = title ||
-		"<a href=\"$gSkin.rootdir/~$url_nick/\">$thisnickname ($uid)</a> $zi";
+		"<a href=\"$constants.real_rootdir/~$url_nick/\">$thisnickname ($uid)</a> $zi";
 	PROCESS titlebar title=title;
 END %]
 
 [% tabs = [ ];
 IF user.uid == uid;
 	tabs = [
-		{ link = "/~$url_nick/",	label = "Info",		sel_label = "info" },
+		{ link = "$constants.real_rootdir/~$url_nick/",	label = "Info",		sel_label = "info" },
 	];
 	IF constants.plugin.Journal; tabs.push(
-		{ link = "/~$url_nick/journal/",label = "Journal",	sel_label = "journal" },
+		{ link = "$constants.real_rootdir/~$url_nick/journal/",label = "Journal",	sel_label = "journal" },
 	); END;
 	IF constants.plugin.FireHose; tabs.push(
-		{ link = "/~$url_nick/firehose/",label = "Firehose",	sel_label = "firehose" },
+		{ link = "$constants.real_rootdir/~$url_nick/firehose/",label = "Firehose",	sel_label = "firehose" },
 	); END;
 	IF constants.plugin.Messages; tabs.push(
-		{ link = "/my/inbox/",		label = "Messages",	sel_label = "messages" },
+		{ link = "$constants.real_rootdir/my/inbox/",		label = "Messages",	sel_label = "messages" },
 	); END;
 	IF constants.plugin.Zoo; tabs.push(
-		{ link = "/my/friends/",	label = "Friends",	sel_label = "friends" },
+		{ link = "$constants.real_rootdir/my/friends/",	label = "Friends",	sel_label = "friends" },
 	); tabs.push(
-		{ link = "/my/fans/",		label = "Fans",		sel_label = "fans" },
+		{ link = "$constants.real_rootdir/my/fans/",		label = "Fans",		sel_label = "fans" },
 	); tabs.push(
-		{ link = "/my/foes/",		label = "Foes",		sel_label = "foes" },
+		{ link = "$constants.real_rootdir/my/foes/",		label = "Foes",		sel_label = "foes" },
 	); tabs.push(
-		{ link = "/my/freaks/",		label = "Freaks",	sel_label = "freaks" },
+		{ link = "$constants.real_rootdir/my/freaks/",		label = "Freaks",	sel_label = "freaks" },
 	); END;
 	IF constants.plugin.Tags; tabs.push(
-		{ link = "/my/tags/",		label = "Tags",		sel_label = "tags" },
+		{ link = "$constants.real_rootdir/my/tags/",		label = "Tags",		sel_label = "tags" },
 	); END;
 	IF constants.plugin.Bookmark; tabs.push(
-		{ link = "/my/bookmarks/",	label = "Bookmarks",	sel_label = "bookmarks" },
+		{ link = "$constants.real_rootdir/my/bookmarks/",	label = "Bookmarks",	sel_label = "bookmarks" },
 	); END;
 ELSIF user.is_anon;
 	tabs = [
-		{ link = "/~$url_nick/",	label = "Info",		sel_label = "info" },
+		{ link = "$constants.real_rootdir/~$url_nick/",	label = "Info",		sel_label = "info" },
 	];
 	IF constants.plugin.Journal; tabs.push(
-		{ link = "/~$url_nick/journal/",label = "Journal",	sel_label = "journal" },
+		{ link = "$constants.real_rootdir/~$url_nick/journal/",label = "Journal",	sel_label = "journal" },
 	); END;
 	IF constants.plugin.FireHose; tabs.push(
-		{ link = "/~$url_nick/firehose/",label = "Firehose",	sel_label = "firehose" },
+		{ link = "$constants.real_rootdir/~$url_nick/firehose/",label = "Firehose",	sel_label = "firehose" },
 	); END;
 	IF constants.plugin.Zoo; tabs.push(
-		{ link = "/~$url_nick/friends/",label = "Friends",	sel_label = "friends" },
+		{ link = "$constants.real_rootdir/~$url_nick/friends/",label = "Friends",	sel_label = "friends" },
 	); tabs.push(
-		{ link = "/~$url_nick/fans/",	label = "Fans",		sel_label = "fans" },
+		{ link = "$constants.real_rootdir/~$url_nick/fans/",	label = "Fans",		sel_label = "fans" },
 	); tabs.push(
-		{ link = "/~$url_nick/foes/",	label = "Foes",		sel_label = "foes" },
+		{ link = "$constants.real_rootdir/~$url_nick/foes/",	label = "Foes",		sel_label = "foes" },
 	); tabs.push(
-		{ link = "/~$url_nick/freaks/",	label = "Freaks",	sel_label = "freaks" },
+		{ link = "$constants.real_rootdir/~$url_nick/freaks/",	label = "Freaks",	sel_label = "freaks" },
 	); END;
 	IF constants.plugin.Tags; tabs.push(
-		{ link = "/~$url_nick/tags/",	label = "Tags",		sel_label = "tags" },
+		{ link = "$constants.real_rootdir/~$url_nick/tags/",	label = "Tags",		sel_label = "tags" },
 	); END;
 	IF constants.plugin.Bookmark; tabs.push(
-		{ link = "/~$url_nick/bookmarks/",	label = "Bookmarks",	sel_label = "bookmarks" },
+		{ link = "$constants.real_rootdir/~$url_nick/bookmarks/",	label = "Bookmarks",	sel_label = "bookmarks" },
 	); END;
 ELSE;
 	tabs = [
-		{ link = "/~$url_nick/",	label = "Info",		sel_label = "info" },
+		{ link = "$constants.real_rootdir/~$url_nick/",	label = "Info",		sel_label = "info" },
 	];
 	IF constants.plugin.Zoo; tabs.push(
 		{ link = "/zoo.pl?op=check&amp;uid=$uid", label = "Relation", sel_label = "relation" },
 	); END;
 	IF constants.plugin.Journal; tabs.push(
-		{ link = "/~$url_nick/journal/",label = "Journal",	sel_label = "journal" },
+		{ link = "$constants.real_rootdir/~$url_nick/journal/",label = "Journal",	sel_label = "journal" },
 	); END;
 	IF constants.plugin.FireHose; tabs.push(
-		{ link = "/~$url_nick/firehose/",label = "Firehose",	sel_label = "firehose" },
+		{ link = "$constants.real_rootdir/~$url_nick/firehose/",label = "Firehose",	sel_label = "firehose" },
 	); END;
 	IF constants.plugin.Zoo; tabs.push(
-		{ link = "/~$url_nick/friends/",label = "Friends",	sel_label = "friends" },
+		{ link = "$constants.real_rootdir/~$url_nick/friends/",label = "Friends",	sel_label = "friends" },
 	); tabs.push(
-		{ link = "/~$url_nick/fans/",	label = "Fans",		sel_label = "fans" },
+		{ link = "$constants.real_rootdir/~$url_nick/fans/",	label = "Fans",		sel_label = "fans" },
 	); tabs.push(
-		{ link = "/~$url_nick/foes/",	label = "Foes",		sel_label = "foes" },
+		{ link = "$constants.real_rootdir/~$url_nick/foes/",	label = "Foes",		sel_label = "foes" },
 	); tabs.push(
-		{ link = "/~$url_nick/freaks/",	label = "Freaks",	sel_label = "freaks" },
+		{ link = "$constants.real_rootdir/~$url_nick/freaks/",	label = "Freaks",	sel_label = "freaks" },
 	); END;
 	IF constants.plugin.Tags; tabs.push(
-		{ link = "/~$url_nick/tags/",	label = "Tags",		sel_label = "tags" },
+		{ link = "$constants.real_rootdir/~$url_nick/tags/",	label = "Tags",		sel_label = "tags" },
 	); END;
 	IF constants.plugin.Bookmark; tabs.push(
-		{ link = "/~$url_nick/bookmarks/", label = "Bookmarks",	sel_label = "bookmarks" },
+		{ link = "$constants.real_rootdir/~$url_nick/bookmarks/", label = "Bookmarks",	sel_label = "bookmarks" },
 	); END;
 END %]
 <div id="usermenu">

Modified: slashjp/branches/upstream/current/themes/slashcode/templates/userboxes2;misc;default
===================================================================
--- slashjp/branches/upstream/current/themes/slashcode/templates/userboxes2;misc;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/themes/slashcode/templates/userboxes2;misc;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -25,7 +25,7 @@
 
 	title = 'User Bio';
 	contents = BLOCK;
-		'<a href="'; gSkin.rootdir; '/~';
+		'<a href="'; constants.real_rootdir; '/~';
 			useredit.nickname | strip_paramattr; '/">';
                         useredit.nickname | strip_literal; '</a> ';
 		PROCESS zoo_icons person=useredit.uid implied="";

Modified: slashjp/branches/upstream/current/themes/slashcode/templates/userboxes;misc;default
===================================================================
--- slashjp/branches/upstream/current/themes/slashcode/templates/userboxes;misc;default	2008-12-04 10:59:09 UTC (rev 863)
+++ slashjp/branches/upstream/current/themes/slashcode/templates/userboxes;misc;default	2008-12-05 05:46:15 UTC (rev 864)
@@ -61,7 +61,7 @@
 	title = useredit.nickname | strip_literal;
 	title = title _ " ($useredit.uid)";
 	contents = BLOCK;
-		'<a href="'; gSkin.rootdir; '/~';
+		'<a href="'; constants.real_rootdir; '/~';
 			useredit.nickname | strip_paramattr; '/">';
                         useredit.nickname | strip_literal; '</a> ';
 		PROCESS zoo_icons person=useredit.uid implied="";
@@ -166,7 +166,7 @@
 	IF user.points || user.is_admin;
 		title = "Moderation";
 		contents = BLOCK %]
-<a href="[% gSkin.rootdir %]/~[% user.nickname | strip_paramattr %]/">You</a>
+<a href="[% constants.real_rootdir %]/~[% user.nickname | strip_paramattr %]/">You</a>
 have moderator access
 [% IF user.is_admin %](because you're an admin)[% END %]
 and <b>[% user.points %]</b> point[% user.points == 1 ? '' : 's' %]


Slashdotjp-dev メーリングリストの案内
Back to archive index