#!/usr/bin/perl
###############################
# Hot Links Pro 3 addlink.cgi
# Created by Mike Ramirez
# Nothing below here is configurable
###############################
require './source/headerfooter.pl';
require './source/config.pl';
require './source/get.pl';
require './lang/langset.pl';
###############################
use CGI;
my $q = CGI->new;
print $q->header;
$action = $q->param("action");
if ($action eq "add") {&addform}
if ($action eq 'edit') {&passcheck}
if ($action eq 'login') {&lookup}
if ($action eq 'addlink') {&checkforduplicate}
if ($action eq 'metaform') {&metaform}
if ($action eq 'getmeta') {&getmeta}
##################################################
sub metaform {
##################################################
$category = $q->param("category");
&header;
print <<"HTML";
HTML
&footer;
}
##################################################
sub getmeta {
##################################################
$url = $q->param("url");
open (FILE, "$basepath/bannedurls.txt");
my @urls = ;
close(FILE);
foreach $line (@urls) {
chomp($line);
if ($url =~ m/http:\/\/$line/i) {&error2("$altext33")}
}
$content = get($url);
if ($content) {
#Get the title
$content =~ /(.*)<\/title>/ig;
$usetitle = $1;
$usetitle =~ s/\"//g; #remove double quotes
$usetitle =~ s/\'//g; #remove single quotes
#Get the description
$content =~ //i;
$description = $1;
$description =~ s/\"//g; #remove double quotes
$description =~ s/\'//g; #remove single quotes
#Get the keywords
$content =~ //i;
$keywords = $1;
$keywords =~ s/\"//g; #remove double quotes
$keywords =~ s/\'//g; #remove single quotes
&addform;
} else {&addform}
}
##################################################
sub addform {
##################################################
&header;
print <<"HTML";
HTML
&footer;
}
##################################################
sub passcheck {
##################################################
&header;
print <<"HTML";
HTML
&footer;
}
##################################################
sub lookup {
##################################################
my $userid = $q->param("userid");
my $userpass = $q->param("userpass");
my $filetolock = $datafilepath;
my $tempfile = $filetolock . ".lock";
open (LOCK, ">$tempfile");
if ($useflock == 1) {flock (LOCK, 2)}
open (FILE, "$datafilepath");
@alllinks = ;
close(FILE);
close(LOCK);
unlink ($tempfile);
foreach $line (@alllinks) {
chomp($line);
@currentline = split(/\|/, $line);
$checkpass = $currentline[6];
chomp ($checkpass);
chomp ($currentline[8]);
if (($userid == $currentline[0]) && ($userpass eq $checkpass)) {
$modifylink = $line;
&editscreen;
}
}
if ($modifylink eq '') {
&error;
}
}
##################################################
sub editscreen {
##################################################
&header;
print <<"HTML";
HTML
&footer;
}
##################################################
sub checkforduplicate {
##################################################
my $url = $q->param("url");
my $category = $q->param("category");
my $sitename = $q->param("sitename");
my $email = $q->param("email");
my $name = $q->param("name");
my $password = $q->param("password");
my $description = $q->param("description");
my $keywords = $q->param("keywords");
my $recipurl = $q->param("recipurl");
my $image = $q->param("image");
my $enddate = $q->param("enddate");
my $filetolock = $datafilepath;
my $tempfile = $filetolock . ".lock";
open (FILE, "$basepath/bannedurls.txt");
my @urls = ;
close(FILE);
foreach $line (@urls) {
chomp($line);
if ($url =~ m/http:\/\/$line/i) {&error2("$altext33")}
}
open (LOCK, ">$tempfile");
if ($useflock == 1) {flock (LOCK, 2)}
open (FILE, "$datafilepath");
@links = ;
close(FILE);
close(LOCK);
unlink ($tempfile);
foreach $line (@links) {
my @linkinfo = split(/\|/, $line);
if ($duprestriction == 1) {
if (($linkinfo[3] eq $url) && ($linkinfo[1] eq $category)) {$duplicate = 1;}
} elsif ($duprestriction == 2) {
if ($linkinfo[3] eq $url) {$duplicate = 1;}
}
}
if (($q->param("url") eq '') || ($q->param("sitename") eq '') || ($q->param("email") eq '') || ($q->param("name") eq '') || ($q->param("password") eq '') || ($q->param("description") eq '')) {$incomplete = 1;}
if ($duplicate == 1) {&duplicate}
elsif ($incomplete == 1) {&incomplete}
else {
&header;
print <<"HTML";
HTML
&footer;
}
}
##################################################
sub duplicate {
##################################################
&header;
print <<"HTML";
HTML
&footer;
}
##################################################
sub dropdownlist {
##################################################
my $filetolock = $datafilepath;
my $tempfile = $filetolock . ".lock";
open (LOCK, ">$tempfile");
if ($useflock == 1) {flock (LOCK, 2)}
open (FILE, "$datafilepath");
@links = ;
close(FILE);
close(LOCK);
unlink ($tempfile);
my $filetolock = $catfilepath;
my $tempfile = $filetolock . ".lock";
open (LOCK, ">$tempfile");
if ($useflock == 1) {flock (LOCK, 2)}
open (FILE, "$catfilepath");
@cats = ;
close(FILE);
close(LOCK);
unlink ($tempfile);
opendir (DIR, "$catinfopath");
@catbuild = grep (!/^\.\.?$/, readdir (DIR));
closedir(DIR);
foreach $line (@catbuild) {
chomp($line);
if ($line =~ /main/) {
$category = $line;
$category =~ s/\.main//;
foreach $x (@cats) {
chomp($x);
my @catinfo = split(/\|/, $x);
if ($catinfo[0] == $category) {$categorybuild{$category} = "$catinfo[1]"}
}
open (FILE, "$catinfopath/$category.main");
my @subs = ;
close(FILE);
foreach $sub (@subs) {
chomp($sub);
my @subinfo = split(/\|/, $sub);
$categorybuild{$subinfo[0]} = "$categorybuild{$category}/$subinfo[1]";
&buildsubs("$subinfo[0]", "$categorybuild{$subinfo[0]}");
}
}
}
sub buildsubs {
foreach $y (@catbuild) {
chomp($y);
if ($y eq "$_[0].sub") {
open (FILE, "$catinfopath/$y");
my @moresubs = ;
close(FILE);
foreach $sub (@moresubs) {
chomp($sub);
my @subinfo = split(/\|/, $sub);
$categorybuild{$subinfo[0]} = "$_[1]/$subinfo[1]";
&buildsubs("$subinfo[0]", "$categorybuild{$subinfo[0]}");
}
}
}
}
# Build the Drop down menu
foreach $key (keys %categorybuild) {
push(@getvalues, "$categorybuild{$key}|$key");
}
foreach $value (sort values %categorybuild) {
foreach $line (@getvalues) {
chomp($line);
my @comparevalue = split(/\|/, $line);
if ($comparevalue[0] eq $value) {
if ($currentline[1] == $comparevalue[1]) {
print "