102 lines
3.3 KiB
Perl
102 lines
3.3 KiB
Perl
# ==================================================================
|
|
# Gossamer Links - enhanced directory management system
|
|
#
|
|
# Website : http://gossamer-threads.com/
|
|
# Support : http://gossamer-threads.com/scripts/support/
|
|
# CVS Info : 087,071,086,086,085
|
|
# Revision : $Id: Users.pm,v 1.4 2007/03/22 22:05:44 brewt Exp $
|
|
#
|
|
# Copyright (c) 2001 Gossamer Threads Inc. All Rights Reserved.
|
|
# Redistribution in part or in whole strictly prohibited. Please
|
|
# see LICENSE file for full details.
|
|
# ==================================================================
|
|
|
|
package Links::HTML::Users;
|
|
# ==================================================================
|
|
# Handles displaying of forms and HTML.
|
|
#
|
|
use strict;
|
|
use vars qw/@ISA/;
|
|
use Links qw/:objects/;
|
|
use GT::SQL::Display::HTML::Table;
|
|
|
|
@ISA = qw/GT::SQL::Display::HTML::Table/;
|
|
|
|
sub display {
|
|
# -------------------------------------------------------------------
|
|
# Displays a link, but passes through the plugin system.
|
|
#
|
|
my $self = shift;
|
|
my $p = ref $_[0] eq 'HASH' ? shift : {@_};
|
|
|
|
$PLG->dispatch('display_user', sub { $self->SUPER::display(@_) }, $p);
|
|
}
|
|
|
|
sub form {
|
|
# -------------------------------------------------------------------
|
|
# Displays a user form, but passes through the plugin system.
|
|
#
|
|
my $self = shift;
|
|
my $p = (ref $_[0] eq 'HASH') ? shift : {@_};
|
|
|
|
$PLG->dispatch('form_user', sub { return $self->SUPER::form(@_) }, $p);
|
|
}
|
|
|
|
sub _display {
|
|
# -------------------------------------------------------------------
|
|
# Adds on a box with quick links to the users links.
|
|
#
|
|
my ($self, $opts) = @_;
|
|
my $user = $opts->{values}->{Username};
|
|
my $output = '';
|
|
|
|
# If we are modifying, then add a hidden field for the original record.
|
|
if ($opts->{mode} eq 'modify_form') {
|
|
$opts->{code}->{Username} ||= \&disp_username;
|
|
my $user_q = GT::CGI->html_escape($user);
|
|
$output .= qq~<input type="hidden" name="orig_username" value="$user_q">~;
|
|
}
|
|
else {
|
|
delete $self->{code}->{Username};
|
|
}
|
|
$output .= $self->SUPER::_display($opts);
|
|
if ($user) {
|
|
my $link_db = $DB->table('Links');
|
|
my $count = $link_db->count({ LinkOwner => $user });
|
|
my $url = GT::CGI->url({ query_string => 0 });
|
|
my $user_q = GT::CGI->escape($user);
|
|
$output .= <<HTML;
|
|
<p>
|
|
<table border=1 cellpadding=0 bgcolor="#FFFFFF" cellspacing=0 width="500"><tr><td>
|
|
<table border=0 bgcolor="#FFFFFF" width="500"><tr>
|
|
<td><font face="Tahoma,Arial,Helvetica" size="2">
|
|
Links ($count):
|
|
<a href="$url?db=Links&do=search_results&LinkOwner=$user_q&ww=1">View</a> |
|
|
<a href="$url?db=Links&do=modify_search_results&LinkOwner=$user_q&ww=1">Modify</a> |
|
|
<a href="$url?db=Links&do=delete_search_results&LinkOwner=$user_q&ww=1">Delete</a>
|
|
</font></td>
|
|
</tr></table>
|
|
</td></tr></table>
|
|
HTML
|
|
}
|
|
return $output;
|
|
}
|
|
|
|
sub disp_username {
|
|
# -------------------------------------------------------------------
|
|
# Display the username with links to edit.
|
|
#
|
|
my ($self, $col, $rec) = @_;
|
|
my $val = $rec->{Username};
|
|
my $val_e = GT::CGI->html_escape($val);
|
|
my $font = $self->{font};
|
|
return <<HTML;
|
|
<tr>
|
|
<td><font $font>Username</font></td>
|
|
<td><font $font><input type="text" name="Username" value="$val_e" size="20"></font></td>
|
|
</tr>
|
|
HTML
|
|
}
|
|
|
|
1;
|