+sub formbuilder_setup (@) {
+ my %params=@_;
+
+ my $form=$params{form};
+ return unless $form->title eq "preferences";
+ my $session=$params{session};
+ my $user_name=$session->param("name");
+ eval q{use IkiWiki::UserInfo};
+ error $@ if $@;
+ $form->field(name => "subscriptions", force => 1, size => 50,
+ fieldset => "preferences",
+ comment => "(".htmllink("", "", "ikiwiki/PageSpec", noimageinline => 1).")",
+ value => IkiWiki::userinfo_get($user_name, "subscriptions"));
+}
+
+sub formbuilder (@) {
+ my %params=@_;
+ my $form=$params{form};
+ return unless $form->title eq "preferences" &&
+ $form->submitted eq "Save Preferences" && $form->validate &&
+ defined $form->field("subscriptions");
+ setsubscriptions($form->field('name'), $form->field('subscriptions'));
+}
+
+sub setsubscriptions ($$) {
+ my $user=shift;
+ my $subscriptions=shift;
+ eval q{use IkiWiki::UserInfo};
+ error $@ if $@;
+ IkiWiki::userinfo_set($user, "subscriptions", $subscriptions);
+}
+