diff options
| author | Jules Laplace <carbon@melanarchy.org> | 2013-08-02 17:14:41 -0500 |
|---|---|---|
| committer | Jules Laplace <carbon@melanarchy.org> | 2013-08-02 17:14:41 -0500 |
| commit | e9192b3d42660a5781101df4357d276318151e8a (patch) | |
| tree | 059eb6ace6147cf9559af74ed1ab5e221c80e280 /lib/keywords.pm | |
| parent | 79670053c7247d3a49b607960efd284e93f057e5 (diff) | |
cgi-bin & lib
Diffstat (limited to 'lib/keywords.pm')
| -rw-r--r-- | lib/keywords.pm | 187 |
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;"> </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; + |
