#!/usr/bin/perl
$| = 1;
##############################################################################
#
# Program: Active Classifieds Free Edition
# Version: 1.2
# Website: http://www.activewebsuite.com
#
##############################################################################
##############################################################################
#
# COPYRIGHT NOTICE :
#
# Copyright (c) 2001 Active Web Suite Technologies. All Rights Reserved.
#
# This program is free software; you can change or modify it as you see fit.
# However, modified versions cannot be sold or distributed. You cannot alter
# or remove the copyright notices throughout the scripts. These
# notices must be clearly visible to the end users.
#
# WARRANTY DISCLAIMER:
#
# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT WITHOUT
# ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR
# FITNESS FOR A PARTICULAR PURPOSE.
#
###############################################################################
print "Content-type:text/html\n\n";
$SIG{"__DIE__"} = sub {
my $error = shift;
chomp $error;
# this will handle the case when script is being run from shell, so
# we don't want to see all the HTML but only the error message
print $error, return unless defined $ENV{GATEWAY_INTERFACE};
#$error =~ s/[<&>]/"& #".ord($&).";"/ge; # entity escape
$error =~ s/\n/
\n/gs; # return \n as html
# other parameters
my $cgi_url = $ENV{SCRIPT_NAME} || '';
my $referer = $ENV{HTTP_REFERER} || '';
my $remote_user = $ENV{REMOTE_USER} || '';
# OK, report the error to the browser in HTML format
print qq{
$site_name - Error Occured!
|
An Error Has Occured
|
The following error has occured in your script.
$error
|
|
Additional Information
|
- CGI PATH - $0
- CGI URL - $cgi_url
- HTTP_REFERER - $referer
- REMOTE_USER - $remote_user
|
};
exit 0;
};
require("library/routines.pl");
require("library/main_html.pl");
require("library/error.pl");
&parse_data;
if ($as{'website'} eq "") {
$require_path = "websites/default";
$as{'website'} = "default";
} else {
$require_path = "websites/$as{'website'}";
}
require("$require_path/variables/system.pl");
require("$require_path/variables/version.pl");
require("$require_path/variables/header.pl");
require("$require_path/variables/footer.pl");
require("$require_path/variables/design.pl");
require("$require_path/variables/function.pl");
&check_session;
srand();
$Page = int(rand(99));
# let's delete a processing.txt file if it may have gotten stuck during the
# automated processes routine.
if (-e "$require_path/variables/processing.txt") {
if (-M "$require_path/variables/processing.txt" > .5) {
unlink("$require_path/variables/processing.txt");
}
}
# if the processing.txt file exists, then don't try to check for automated
# processes to be run. Also, we now only run the automated processes if
# the user is acccessing the frontpage. This way we do not have to
# refuse entry to the system as we know we can just display the frontpage
# before we begin the automated processes. Also this help to eliminate
# the possibly of data corruption due to automated processes interfering with
# a new, edited or renewed ad routine taking place.
unless (-e "$require_path/variables/processing.txt") {
if ((-M "$require_path/variables/automated.txt" > 1) && ($as{'request'} eq "")) {
$run_processes = "yes";
require("library/main_frontpage.pl");
&display_front_page;
require("library/admin_processes.pl");
require("library/email.pl");
&automated_processes;
}
}
#################################################################
### LETS FIRST SEE WHAT THE USER WANTS TO DO
#################################################################
# ==============================================================
# Ad Display Routines
# ==============================================================
if ($as{'request'} eq "") {
require("library/main_frontpage.pl");
&display_front_page;
}
elsif ($as{'request'} eq "display_sub") {
require("library/main_displayads.pl");
&display_sub;
}
elsif ($as{'request'} eq "display_sub_list") {
require("library/main_displayads.pl");
&display_sub_list;
}
elsif ($as{'request'} eq "today") {
require("library/main_displayads.pl");
&display_todays_ads;
}
elsif ($as{'request'} eq "detail") {
require("library/main_displayads.pl");
&display_ad_detail;
}
elsif ($as{'request'} eq "popupdetail") {
require("library/main_displayads.pl");
&doPopupDetail;
}
elsif ($as{'request'} eq "next_ad") {
require("library/main_displayads.pl");
&display_next_ad;
}
elsif ($as{'request'} eq "previousad") {
require("library/main_displayads.pl");
&doShowPreviousAd;
}
elsif ($as{'request'} eq "display_user_ads") {
require("library/main_displayads.pl");
&display_user_ads;
}
# ================================================================
# New Ad Submission Routines
# ================================================================
elsif ($as{'request'} eq "new") {
require("library/main_newad.pl");
&display_new_category_selection;
}
elsif ($as{'request'} eq "determine_subcategory_information") {
require("library/main_newad.pl");
&determine_subcategory_information;
}
elsif ($as{'request'} eq "display_new_ad_details") {
require("library/main_newad.pl");
&display_new_ad_details;
}
elsif ($as{'request'} eq "submit_new_ad_details") {
require("library/main_newad.pl");
require("library/email.pl");
&submit_new_ad_details;
}
# ===============================================================
# Edit/Delete/Renew/Photo Ad Routines
# ===============================================================
elsif ($as{'request'} eq "myclassifieds") {
require("library/main_admaintenance.pl");
&display_my_classifieds_page;
}
elsif ($as{'request'} eq "view_quicklinks") {
require("library/main_quicklinks.pl");
&view_quicklinks;
}
elsif ($as{'request'} eq "ad_maintenance") {
require("library/main_admaintenance.pl");
&display_my_ads_listing;
}
elsif ($as{'request'} eq "edit") {
require("library/main_admaintenance.pl");
&edit_existing_ad;
}
elsif ($as{'request'} eq "submit_edit_ad") {
require("library/main_admaintenance.pl");
&submit_edit_ad;
}
elsif ($as{'request'} eq "delete") {
require("library/main_admaintenance.pl");
&display_ad_delete_confirmation;
}
elsif ($as{'request'} eq "delete_confirmed") {
require("library/main_admaintenance.pl");
&delete_user_ad;
}
elsif ($as{'request'} eq "renew") {
require("library/main_admaintenance.pl");
&display_renew_ad_form;
}
elsif ($as{'request'} eq "submit_renew_ad") {
require("library/main_admaintenance.pl");
require("library/email.pl");
&submit_renew_ad;
}
# ==============================================================
# Search Routines
# ==============================================================
elsif ($as{'request'} eq "search") {
require("library/main_search.pl");
require("library/main_displayads.pl");
&standard_search;
}
elsif ($as{'request'} eq "advanced_search_form") {
require("library/main_search.pl");
&advanced_search_form;
}
elsif ($as{'request'} eq "advanced_search") {
require("library/main_search.pl");
require("library/main_displayads.pl");
&advanced_search;
}
# ==============================================================
# User Profile Routines
# ==============================================================
elsif ($as{'request'} eq "register") {
require("library/main_registration.pl");
&display_user_registration;
}
elsif ($as{'request'} eq "submit_new_user_registration") {
require("library/main_registration.pl");
&submit_new_user_registration;
}
elsif ($as{'request'} eq "modify_profile") {
require("library/main_registration.pl");
&modify_user_profile;
}
elsif ($as{'request'} eq "submit_modify_user_profile") {
require("library/main_registration.pl");
&submit_modify_user_profile;
}
# =========================================================
# User Password Routines
# =========================================================
elsif ($as{'request'} eq "display_forgotten_password_request") {
require("library/main_misc.pl");
&display_forgotten_password_request_form;
}
elsif ($as{'request'} eq "send_password") {
require("library/main_misc.pl");
require("library/email.pl");
&send_password;
}
# =========================================================
# Quick Links Routines
# =========================================================
elsif ($as{'request'} eq "add_quicklink") {
require("library/main_quicklinks.pl");
&add_quicklink;
}
elsif ($as{'request'} eq "delete_quicklinks") {
require("library/main_quicklinks.pl");
&delete_quicklinks;
}
# =======================================================
# Other Misc Routines
# =======================================================
elsif ($as{'request'} eq "send_to_friend") {
require("library/main_misc.pl");
&send_to_friend;
}
elsif ($as{'request'} eq "submit_send_to_friend") {
require("library/main_misc.pl");
require("library/email.pl");
&submit_send_to_friend;
}
elsif ($as{'request'} eq "reply") {
require("library/main_misc.pl");
&display_reply_mail_form;
}
elsif ($as{'request'} eq "submit_reply") {
require("library/main_misc.pl");
require("library/email.pl");
&submit_reply;
}