--- /dev/null
+Roadmap по server-side части
+1. newtopic
+2. newforum
+3. процедура раскрутки
+4. страничка юзера
+5. список юзеров
+6. редактирование user profile и фиксы в регистрации
+7. Механизм регистрации с подтверждением
+8. delete (message, topic, forum)
+9. edit (message,topic,forum)
+10. move (message,topic,forum)
+11. setrights
+12. applytemplates
+13. Раскрутка форума
+14. Почтовые оповещения о новых репликах, RSS или recent comments page
while (my ($key,$val) = each %x) {
my $data;
eval {
- $data = Dumper(thaw($val));
+ $data = Data::Dumper->Dump([thaw($val)],[$key]);
+ $data =~ s/^\$//;
+ $data =~ s/ = / => /s;
};
if ($@) {
- $data = $val;
+ $data = "$key => $val";
}
- print $key, " => ",$data,"\n";
+ print $data,"\n";
}
sub substitute_user_info {
-my ($tree,$forum) = @_;
-my %userinfo = %{$forum->{"authenticated"}};
-
+my ($tree,$forum,$user) = @_;
+my %userinfo;
+if (defined $user) {
+ my %users;
+ dbmopen %users,datafile($forum,"passwd"),0644;
+ if (!$users{$user}) {
+ show_error($forum,"Неизвестный пользователь $user");
+ my $record = thaw($users{$user});
+ %userinfo = %$record;
+ $userinfo{"user"} = $user;
+} else {
+ # Если не сказано, какой юзер, то текущий.
+ %userinfo = %{$forum->{"authenticated"}}
+}}
#
# Специально обрабатываем поля user (должна быть ссылка) и avatar
# (должен быть img).
$element->delete_content();
$element->push_content(str2tree($userinfo{$field}))
if $userinfo{$field};
+ $element->attr(href=>"mailto:$userinfo{$field}")
+ if ($element->tag eq "a" && $field eq "email");
}