summaryrefslogtreecommitdiff
path: root/lib/keywords.pm
diff options
context:
space:
mode:
authorJules Laplace <carbon@melanarchy.org>2013-08-02 17:14:41 -0500
committerJules Laplace <carbon@melanarchy.org>2013-08-02 17:14:41 -0500
commite9192b3d42660a5781101df4357d276318151e8a (patch)
tree059eb6ace6147cf9559af74ed1ab5e221c80e280 /lib/keywords.pm
parent79670053c7247d3a49b607960efd284e93f057e5 (diff)
cgi-bin & lib
Diffstat (limited to 'lib/keywords.pm')
-rw-r--r--lib/keywords.pm187
1 files changed, 187 insertions, 0 deletions
diff --git a/lib/keywords.pm b/lib/keywords.pm
new file mode 100644
index 0000000..c600cd6
--- /dev/null
+++ b/lib/keywords.pm
@@ -0,0 +1,187 @@
+###############################################
+
+sub keyword_assign_mechanism
+ {
+ my ($kn, $tn, $ko) = @_;
+ if (!defined($kn))
+ { error("no keyword specified!"); }
+ if (!defined($tn))
+ { error("no post specified!"); }
+ if (!defined($ko))
+ { $ko = get_keyword($kn); }
+ my %nk =
+ (
+ threads => add_key($ko->{threads}, $tn)
+ );
+ if ($DEBUG)
+ {
+ header("Assigning post to $kn");
+ menu();
+ foreach my $ky (keys %nk)
+ { print "$ky => $nk{$ky}<br>\n"; }
+ print "keyword ==> $kn<br>\n";
+ }
+ update_keyword($kn, \%nk);
+ update_thread_keyword($tn, $kn);
+ }
+
+###############################################
+
+sub keyword_pulldown
+ {
+ my ($selected) = @_;
+ my $keywords = get_keywords();
+
+ if (! ($selected && $selected ne "all"))
+ {
+ if ($USER->{'username'} eq "flop4andy")
+ {
+ $selected = "dreamteamer";
+ }
+ else
+ {
+ $selected = $BUCKY_DEFAULT_KEYWORD;
+ }
+ }
+
+ print qq!<select name="keyword">!;
+ print qq!<option value="NONE"!;
+ print " selected" if ($selected eq "NONE");
+ print qq!>(none)</option>!;
+ print qq!<option disabled> . . . . . . . . . . </option>!;
+
+ foreach my $k (sort { lc($a) cmp lc($b) } keys %$keywords)
+ {
+ my $kh = $keywords->{$k};
+ $sees_private_keys++ if (check_op($kh));
+ next unless ($kh->{public} == 1);
+ print qq!<option value="$k"!;
+ print qq! selected! if ($k eq $selected);
+ print qq!>$k</option>!;
+ }
+
+ if (! $sees_private_keys)
+ {
+ print qq!</select>\n!;
+ return;
+ }
+
+# return unless ($sees_private_keys);
+
+ print qq!<option disabled> . . . . . . . . . . </option>!;
+ foreach my $k (sort { lc($a) cmp lc($b) } keys %$keywords)
+ {
+ my $kh = $keywords->{$k};
+ next if ($kh->{public} == 1);
+ next unless ($kh->{owner} eq $USER->{username} || check_op($kh));
+ print qq!<option value="$k"!;
+ print qq! selected! if ($k eq $selected);
+ print qq!>$k</option>!;
+ }
+ print qq!</select>\n!;
+ }
+
+###############################################
+
+sub keyword_form
+ {
+ my ($keyword, $k, $t) = @_;
+ my $checked = "";
+ my $verb = "MODIFY";
+ my $command = ($keyword eq "new") ? "create" : "update";
+ $t = -1 unless (defined ($t));
+
+ # keyword ops(matrix) public(checkbox) agglutinate(checkbox)
+
+ print <<kf;
+<form action="$BUCKY/index" method="post" enctype="multipart/form-data">
+<input type=hidden name="c" value="$command">
+kf
+ print qq!<input type=hidden name="debug" value="1">\n! if ($DEBUG);
+ print <<kf;
+<table border=0 cellpadding=0 cellspacing=0>
+<tr>
+<td style="text-align: right; vertical-align: middle;"><b>category</b></td>
+<td style="text-align: left; vertical-align: middle; padding-left: 10px;">
+kf
+ if ($keyword eq "new")
+ {
+ $verb = "CREATE";
+ print qq!<input type="text" name="keyword" value="" maxlength=15>!;
+ }
+ else
+ {
+ print qq!<b>$keyword</b>!;
+ print qq!<input type="hidden" name="keyword" value="$keyword">\n!;
+ }
+ print <<kf;
+</td>
+</tr>
+kf
+ if ($t != -1)
+ {
+ print <<pub;
+<tr>
+<td style="text-align: right; vertical-align: middle;">initial post</td>
+<td style="text-align: left; vertical-align: middle; padding-left: 10px;"><input type="hidden" name="thread" value="$t->{id}"><a href="$BUCKY/details/$t->{id}">$t->{title}</a></td>
+</tr>
+pub
+ }
+
+ $checked = ($k->{public} == 1) ? " checked" : "";
+ print <<pub;
+<tr>
+<td style="text-align: right; vertical-align: middle;">color</td>
+<td style="text-align: left; vertical-align: middle; padding-left: 10px;">
+pub
+ my $rcolor = get_color(-1, $k);
+ color_dropdown($rcolor, 0);
+ print <<kf;
+</td>
+</tr>
+<tr>
+<td style="text-align: right; vertical-align: middle;">anyone can post</td>
+<td style="text-align: left; vertical-align: middle; padding-left: 10px;"><input type="checkbox" name="public" value="1"$checked></td>
+</tr>
+kf
+
+ if ($k->{public} != 1 || $t != -1)
+ {
+ print <<kf;
+<tr>
+<td style="text-align: right; vertical-align: top;">operators</td>
+<td style="text-align: left; vertical-align: middle; padding-left: 10px;">
+kf
+ print qq!<center>!;
+ print qq!<span style="font-family: georgia, garamond, serif; font-size: 12px;">\n!;
+ print qq!<nobr><small><B>--- if "anyone can post" is unchecked ---</b><br>users checked off below will <b>share control</b> of this category,<br>and will be able to add new posts to it,<br>alter privacy/color settings, etc.</small></nobr><br>\n!;
+ print qq!</span>!;
+ if ($t != -1)
+ { user_checkerboard($t->{allowed}, undef); }
+ elsif (exists($k->{ops}))
+ { user_checkerboard($k->{ops}, undef); }
+ else
+ { user_checkerboard($k->{owner}, undef); }
+ print qq!</center>!;
+
+ print <<kf;
+</td>
+</tr>
+kf
+ }
+
+ print <<kf;
+<tr>
+<td style="text-align: right; vertical-align: middle;">&nbsp;</td>
+<td style="text-align: left; vertical-align: middle; padding-left: 10px;"><input type="submit" class="clicky" value="$verb CATEGORY"></td>
+</tr>
+
+</table>
+</form>
+kf
+ }
+
+###############################################
+
+1;
+