154 lines
4.3 KiB
Perl
154 lines
4.3 KiB
Perl
# ==================================================================
|
|
# Plugins::OverrideModDate - Auto Generated Program Module
|
|
#
|
|
# Plugins::OverrideModDate
|
|
# Author : Gossamer Threads Inc.
|
|
# Version : 1.0
|
|
# Updated : Mon Sep 24 14:34:23 2007
|
|
#
|
|
# ==================================================================
|
|
#
|
|
|
|
package Plugins::OverrideModDate;
|
|
# ==================================================================
|
|
|
|
use strict;
|
|
use GT::Base;
|
|
use GT::Plugins qw/STOP CONTINUE/;
|
|
use Links qw/:objects/;
|
|
use Links::Build;
|
|
use Links::SiteHTML;
|
|
|
|
# Inherit from base class for debug and error methods
|
|
@Plugins::OverrideModDate::ISA = qw(GT::Base);
|
|
|
|
# Your code begins here.
|
|
|
|
|
|
# PLUGIN HOOKS
|
|
# ===================================================================
|
|
|
|
sub post_modify_link {
|
|
# -------------------------------------------------------------------
|
|
# Modify a single link.
|
|
#
|
|
my $ret = shift;
|
|
return $ret if (!$ret);
|
|
|
|
my $new = {};
|
|
my $update = 0;
|
|
Links::init_date();
|
|
if ($IN->param('Add_Date') =~ /^\d\d\d\d-\d\d-\d\d$/) {
|
|
$new->{Add_Date} = $IN->param('Add_Date');
|
|
$update = 1;
|
|
}
|
|
if ($IN->param('Mod_Date') =~ /^\d\d\d\d-\d\d-\d\d$/) {
|
|
$new->{Mod_Date} = $IN->param('Mod_Date');
|
|
$update = 1;
|
|
}
|
|
my $id = $IN->param('ID') || $IN->param('LinkID');
|
|
if ($id and $update) {
|
|
$DB->table('Links')->update({ %$new }, { ID => $id });
|
|
}
|
|
|
|
return $ret;
|
|
}
|
|
|
|
sub pre_handle {
|
|
# ---------------------------------------------------
|
|
# Determine what to do.
|
|
#
|
|
my @args = @_;
|
|
my $link_id = $IN->param('LinkID');
|
|
if ($CFG->{user_required} and !$USER) {
|
|
$PLG->action(STOP);
|
|
print $IN->redirect(Links::redirect_login_url('modify'));
|
|
return @args;
|
|
}
|
|
|
|
# Perform the link modification
|
|
if ($IN->param('modify')) {
|
|
return @args;
|
|
}
|
|
elsif ($USER) {
|
|
# Display the link modify form (for a specific link)
|
|
if ($IN->param('LinkID')) {
|
|
$PLG->action(STOP);
|
|
_modify_passed_in();
|
|
}
|
|
}
|
|
return @args;
|
|
}
|
|
|
|
sub _modify_passed_in {
|
|
# --------------------------------------------------------
|
|
# Display link that was passed in.
|
|
#
|
|
my $lid = $IN->param('LinkID');
|
|
my $link_db = $DB->table('Links');
|
|
my $mtl = Links::Build::build('title', Links::language('LINKS_MODIFY'), "$CFG->{db_cgi_url}/modify.cgi?LinkID=$lid");
|
|
my $sth = $link_db->select({ ID => $lid, LinkOwner => $USER->{Username} }, VIEWABLE);
|
|
if ($USER->{Status} eq 'Administrator') {
|
|
$sth = $link_db->select({ ID => $lid }, VIEWABLE);
|
|
}
|
|
if ($sth->rows) {
|
|
my $link = $sth->fetchrow_hashref;
|
|
my @ids = $DB->table('CatLinks')->select('CategoryID', { LinkID => $link->{ID} })->fetchall_list;
|
|
$IN->param('CatLinks.CategoryID', \@ids);
|
|
|
|
$link->{Contact_Name} ||= $USER->{Name} || $USER->{Username};
|
|
$link->{Contact_Email} ||= $USER->{Email};
|
|
|
|
my $category = {};
|
|
if ($CFG->{db_gen_category_list} < 2) {
|
|
require Links::Tools;
|
|
$category = Links::Tools::category_list();
|
|
$category->{Category} = sub { Links::Tools::category_list_html() };
|
|
}
|
|
print $IN->header();
|
|
print Links::SiteHTML::display('modify', {
|
|
main_title_loop => $mtl,
|
|
%$link,
|
|
%$category
|
|
});
|
|
}
|
|
elsif (!$CFG->{user_required}) {
|
|
require Links::User::Modify;
|
|
Links::User::Modify::_modify_form();
|
|
}
|
|
else {
|
|
print $IN->header();
|
|
print Links::SiteHTML::display('error', { error => Links::language('MODIFY_NOTOWNER'), LinkID => $lid, main_title_loop => $mtl });
|
|
}
|
|
}
|
|
|
|
sub post_add_link {
|
|
# -------------------------------------------------------------------
|
|
# Modify a single link.
|
|
#
|
|
my $ret = shift;
|
|
return $ret if (!$ret);
|
|
|
|
my $new = {};
|
|
my $update = 0;
|
|
Links::init_date();
|
|
if ($IN->param('Add_Date') =~ /^\d\d\d\d-\d\d-\d\d$/) {
|
|
$new->{Add_Date} = $IN->param('Add_Date');
|
|
$update = 1;
|
|
}
|
|
if ($IN->param('Mod_Date') =~ /^\d\d\d\d-\d\d-\d\d$/) {
|
|
$new->{Mod_Date} = $IN->param('Mod_Date');
|
|
$update = 1;
|
|
}
|
|
my $id = $ret->{ID};
|
|
if ($id and $update) {
|
|
$DB->table('Links')->update({ %$new }, { ID => $id });
|
|
}
|
|
|
|
return $ret;
|
|
}
|
|
|
|
|
|
# Always end with a 1.
|
|
1;
|