#!/usr/bin/perl
# ==============================================================
#
# Report a bad link version '2.1.1a'
# Links SQL code copyright Gossamer Threads
# http://www.gossamer-threads.com
# Modifications and code segments copyright PUGDOG Enterprises, Inc.
# http://www.pugdog.com
# Updates for Links SQL 2.1.1 Compatiblity by Andy
# http://www.ace-installer.com
#
# ==============================================================
# Load required modules.
# ---------------------------------------------------
use strict;
use lib ''; ## you need to set this to your own local path!
use Links qw/$DB $IN $USER $CFG/; ## initialize the Database, CGI and other basic objects.
use Links::SiteHTML;
use Links::Authenticate;
use Links::Plugins;
use vars qw/$BAD_LINK_CFG/;
# use GT::Plugins qw/STOP CONTINUE/;
# use GT::Mail;
# $|++;
# Links::reset_env( { load_user => 1 } ) if ($Links::PERSIST);
local $SIG{__DIE__} = \&Links::fatal;
Links::init('');
Links::init_user();
&main();
sub main {
# Define the variables
# ---------------------------------------------------
my ($id, $db_links, $rec, $confirm);
# Get the Links ID number from the input.
$id = $IN->param('ID');
$confirm = $IN->param('confirm');
## check to see if an ID was submitted and that it was numeric
if (!(defined $id) or !($id =~ /^\d+$/)) {
print $IN->header();
print Links::SiteHTML::display('error', {error => "Invalid id: $id"});
return;
}
## Check to see if the ID/Link record exists
$db_links = $DB->table('Links'); ## first grab a new db handle
$rec = $db_links->get ($id); ## see if the ID record exists
if (! $rec) { ## handle errors
print $IN->header();
print Links::SiteHTML::display ('error', { error => Links::language ('JUMP_INVALIDID', $id) });
return;
}
print "The ID was found, the rec is ", %$rec, "
";
if (!($confirm)) {
$rec->{'Status'} = '';
print $IN->header();
print Links::SiteHTML::display ('bad_link', $rec ); return;
}
## Only waste the CPU after we've got a good link in the Links database.
##
## Need to put the configuration variables into the $CFG hash, or similar, and then
## they are globally available, and can be assigned/passed in a hash between routines.
## Works with persistence -- mod_perl speedyCGI, etc
$BAD_LINK_CFG = Links::Plugins::get_plugin_user_cfg ('Bad_Link');
my $bad_links_table = $BAD_LINK_CFG->{'table_name'};
# now, see if the record exists in the Bad_Links database
my $db_bad_links = $DB->table($bad_links_table);
my $rec2 = $db_bad_links->get ($id);
my $dynamic;
if ($db_bad_links->hits) {
$rec->{'Status'} = qq|
Thank you for taking the time to report the link $rec->{'Title'}
\n It's already been recorded, and and it's status is: $rec2->{'Status'} |; print $IN->header(); print Links::SiteHTML::display ('bad_link', $rec ); return; } else { $rec->{'Status'} = qq| Thank you for taking the time to report the link $rec->{'Title'}
\n It's been recorded, and will be checked ASAP |; $rec->{'Title'} =~ s/'/\\'/g; $rec->{'Title'} =~ s/"/\\"/g; $db_bad_links->add ( { LinkID => $id, URL => $rec->{'URL'}, Title => $rec->{'Title'}, IP => $ENV{'REMOTE_ADDR'} } ); print $IN->header(); print Links::SiteHTML::display ('bad_link', $rec ); return; } } ## end of main