w00t
This commit is contained in:
parent
89e1d416d0
commit
73a87c5461
@ -1,3 +1,7 @@
|
|||||||
|
11-01-04
|
||||||
|
* added support for templates
|
||||||
|
* added xml template
|
||||||
|
|
||||||
10-27-04
|
10-27-04
|
||||||
* added configuration for site name.
|
* added configuration for site name.
|
||||||
* added functionality for random tag lines.
|
* added functionality for random tag lines.
|
||||||
|
@ -310,6 +310,21 @@ sub html_escape {
|
|||||||
return $ret_data;
|
return $ret_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
##
|
||||||
|
# Escape xml
|
||||||
|
sub xml_escape {
|
||||||
|
my ($data) = @_;
|
||||||
|
my $ret_data = "";
|
||||||
|
foreach my $line (split(/\n/,$data)) {
|
||||||
|
$line =~ s/</</g;
|
||||||
|
$line =~ s/>/>/g;
|
||||||
|
$line =~ s/"/"/g;
|
||||||
|
$line =~ s/^\s+/" "x$+[0]/e;
|
||||||
|
$ret_data .= $line;
|
||||||
|
}
|
||||||
|
return $ret_data;
|
||||||
|
}
|
||||||
|
|
||||||
##
|
##
|
||||||
# Sends the HTML header
|
# Sends the HTML header
|
||||||
sub send_html_header {
|
sub send_html_header {
|
||||||
@ -319,8 +334,8 @@ sub send_html_header {
|
|||||||
##
|
##
|
||||||
# Renders an HTML template
|
# Renders an HTML template
|
||||||
sub wrap_template {
|
sub wrap_template {
|
||||||
my ($template_file, %vars) = @_;
|
my ($template, $template_file, %vars) = @_;
|
||||||
open(IN,"$template_file");
|
open(IN,"templates/$template/$template_file");
|
||||||
my $data = join("",<IN>);
|
my $data = join("",<IN>);
|
||||||
close(IN);
|
close(IN);
|
||||||
foreach $key (keys %vars) {
|
foreach $key (keys %vars) {
|
||||||
@ -332,8 +347,8 @@ sub wrap_template {
|
|||||||
##
|
##
|
||||||
# Wraps and renders a template
|
# Wraps and renders a template
|
||||||
sub render_template {
|
sub render_template {
|
||||||
my ($template_file, %vars) = @_;
|
my ($template, $template_file, %vars) = @_;
|
||||||
my $data = wrap_template($template_file, %vars);
|
my $data = wrap_template($template, $template_file, %vars);
|
||||||
print STDOUT $data;
|
print STDOUT $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,6 +13,9 @@ $SITE_NAME = "Kwotes";
|
|||||||
# tag lines to be randomly displayed
|
# tag lines to be randomly displayed
|
||||||
# in the header
|
# in the header
|
||||||
|
|
||||||
|
$DEFAULT_TEMPLATE = "default";
|
||||||
|
# name of the default template
|
||||||
|
|
||||||
############################
|
############################
|
||||||
## DATABASE CONFIGURATION ##
|
## DATABASE CONFIGURATION ##
|
||||||
############################
|
############################
|
||||||
|
40
kwotes.pl
40
kwotes.pl
@ -30,6 +30,7 @@ my %FORM = parse_form();
|
|||||||
my $action = $FORM{"action"};
|
my $action = $FORM{"action"};
|
||||||
my $main_content;
|
my $main_content;
|
||||||
my %vars;
|
my %vars;
|
||||||
|
my $template = ($FORM{"template"}) ? $FORM{"template"} : $DEFAULT_TEMPLATE;
|
||||||
|
|
||||||
# populate %vars with ENV
|
# populate %vars with ENV
|
||||||
foreach my $key (keys %ENV) {
|
foreach my $key (keys %ENV) {
|
||||||
@ -41,6 +42,7 @@ $vars{KWOTE_COUNT} = get_kwote_count();
|
|||||||
$vars{KWOTE_BACKUP_COUNT} = get_kwote_backup_count();
|
$vars{KWOTE_BACKUP_COUNT} = get_kwote_backup_count();
|
||||||
$vars{SITE_NAME} = $SITE_NAME;
|
$vars{SITE_NAME} = $SITE_NAME;
|
||||||
$vars{TAG_LINE} = get_tagline();
|
$vars{TAG_LINE} = get_tagline();
|
||||||
|
$vars{TEMPLATE_DIR} = "templates/$template";
|
||||||
|
|
||||||
# send header
|
# send header
|
||||||
send_html_header();
|
send_html_header();
|
||||||
@ -49,7 +51,7 @@ send_html_header();
|
|||||||
# action: add (show add form)
|
# action: add (show add form)
|
||||||
if ($action eq "add") {
|
if ($action eq "add") {
|
||||||
$vars{TITLE} = "Add Kwote";
|
$vars{TITLE} = "Add Kwote";
|
||||||
$main_content = wrap_template("html/content-addform.html", %vars);
|
$main_content = wrap_template($template, "content-addform.html", %vars);
|
||||||
|
|
||||||
############
|
############
|
||||||
# action: doadd (add the kwote to the db)
|
# action: doadd (add the kwote to the db)
|
||||||
@ -58,7 +60,7 @@ if ($action eq "add") {
|
|||||||
if ($FORM{"content"} eq "") {
|
if ($FORM{"content"} eq "") {
|
||||||
$vars{TITLE} = "An Error Occured";
|
$vars{TITLE} = "An Error Occured";
|
||||||
$vars{ERROR_MESSAGE} = "No text entered";
|
$vars{ERROR_MESSAGE} = "No text entered";
|
||||||
$main_content = wrap_template("html/content-error.html",%vars);
|
$main_content = wrap_template($template, "content-error.html",%vars);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
@ -70,13 +72,13 @@ if ($action eq "add") {
|
|||||||
if (!defined($kid)) {
|
if (!defined($kid)) {
|
||||||
$vars{TITLE} = "An Error Occured";
|
$vars{TITLE} = "An Error Occured";
|
||||||
$vars{ERROR_MESSAGE} = "Couldn't add kwote";
|
$vars{ERROR_MESSAGE} = "Couldn't add kwote";
|
||||||
$main_content = wrap_template("html/content-error.html",%vars);
|
$main_content = wrap_template($template, "content-error.html",%vars);
|
||||||
|
|
||||||
# all was good
|
# all was good
|
||||||
} else {
|
} else {
|
||||||
$vars{TITLE} = "Kwote Added";
|
$vars{TITLE} = "Kwote Added";
|
||||||
$vars{KWOTE_ID} = $kid;
|
$vars{KWOTE_ID} = $kid;
|
||||||
$main_content = wrap_template("html/content-addform-thanks.html", %vars);
|
$main_content = wrap_template($template, "content-addform-thanks.html", %vars);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -93,7 +95,7 @@ if ($action eq "add") {
|
|||||||
if (!defined($kwote)) {
|
if (!defined($kwote)) {
|
||||||
$vars{TITLE} = "Kwote Does Not Exist";
|
$vars{TITLE} = "Kwote Does Not Exist";
|
||||||
$vars{ERROR_MESSAGE} = "That kwote does not exist";
|
$vars{ERROR_MESSAGE} = "That kwote does not exist";
|
||||||
$main_content = wrap_template("html/content-error.html",%vars);
|
$main_content = wrap_template($template, "content-error.html",%vars);
|
||||||
|
|
||||||
# all was good
|
# all was good
|
||||||
} else {
|
} else {
|
||||||
@ -101,7 +103,7 @@ if ($action eq "add") {
|
|||||||
$vars{KWOTE_ID} = $kwote->{'id'};
|
$vars{KWOTE_ID} = $kwote->{'id'};
|
||||||
$vars{KWOTE_TEXT} = html_escape($kwote->{'content'});
|
$vars{KWOTE_TEXT} = html_escape($kwote->{'content'});
|
||||||
$vars{KWOTE_RATING} = $kwote->{'rating'};
|
$vars{KWOTE_RATING} = $kwote->{'rating'};
|
||||||
$main_content = wrap_template("html/content-show-kwote.html", %vars);
|
$main_content = wrap_template($template, "content-show-kwote.html", %vars);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -159,6 +161,8 @@ if ($action eq "add") {
|
|||||||
$vars{LAST_INDEX} = $start_index-$max_returned;
|
$vars{LAST_INDEX} = $start_index-$max_returned;
|
||||||
$vars{MAX_RECORDS} = $max_records;
|
$vars{MAX_RECORDS} = $max_records;
|
||||||
$vars{SEARCH_STRING} = $search_string;
|
$vars{SEARCH_STRING} = $search_string;
|
||||||
|
$vars{MAX_RATING} = $max_rating;
|
||||||
|
$vars{MIN_RATING} = $min_rating;
|
||||||
|
|
||||||
# get the navigation template
|
# get the navigation template
|
||||||
my $navigation_template = undef;
|
my $navigation_template = undef;
|
||||||
@ -166,41 +170,43 @@ if ($action eq "add") {
|
|||||||
# forward, no back
|
# forward, no back
|
||||||
if ($FORM{"o"} ne "random" && $start_index<=0 && @rows>=$max_returned
|
if ($FORM{"o"} ne "random" && $start_index<=0 && @rows>=$max_returned
|
||||||
&& ($start_index+$max_returned)<$max_records) {
|
&& ($start_index+$max_returned)<$max_records) {
|
||||||
$navigation_template = "html/content-list-navigate-no-back.html";
|
$navigation_template = "content-list-navigate-no-back.html";
|
||||||
|
|
||||||
# forward and back
|
# forward and back
|
||||||
} elsif ($FORM{"o"} ne "random" && $start_index>0 && @rows>=$max_returned
|
} elsif ($FORM{"o"} ne "random" && $start_index>0 && @rows>=$max_returned
|
||||||
&& ($start_index+$max_returned)<$max_records ) {
|
&& ($start_index+$max_returned)<$max_records ) {
|
||||||
$navigation_template = "html/content-list-navigate.html";
|
$navigation_template = "content-list-navigate.html";
|
||||||
|
|
||||||
# back only
|
# back only
|
||||||
} elsif ($FORM{"o"} ne "random" && $start_index>0 && @rows<$max_returned) {
|
} elsif ($FORM{"o"} ne "random" && $start_index>0 && @rows<$max_returned) {
|
||||||
$navigation_template = "html/content-list-navigate-no-forward.html";
|
$navigation_template = "content-list-navigate-no-forward.html";
|
||||||
}
|
}
|
||||||
|
|
||||||
# wrap the navigation template
|
# wrap the navigation template
|
||||||
$main_content .= wrap_template($navigation_template, %vars);
|
$main_content .= wrap_template($template, $navigation_template, %vars);
|
||||||
|
|
||||||
# loop through the results
|
# loop through the results
|
||||||
if (defined(@rows)) {
|
if (defined(@rows)) {
|
||||||
for (my $i=0; $i<@rows && ($i+$start_index)<$max_records; $i++) {
|
for (my $i=0; $i<@rows && ($i+$start_index)<$max_records; $i++) {
|
||||||
my $row = $rows[$i];
|
my $row = $rows[$i];
|
||||||
$vars{KWOTE_ID} = $row->{'id'};
|
$vars{KWOTE_ID} = $row->{'id'};
|
||||||
$vars{KWOTE_TEXT} = html_escape($row->{'content'});
|
$vars{KWOTE_TEXT_HTML} = html_escape($row->{'content'});
|
||||||
|
$vars{KWOTE_TEXT_XML} = xml_escape($row->{'content'});
|
||||||
|
$vars{KWOTE_TEXT_PLAIN} = $row->{'content'};
|
||||||
$vars{KWOTE_RATING} = $row->{'rating'};
|
$vars{KWOTE_RATING} = $row->{'rating'};
|
||||||
$main_content .= wrap_template("html/content-show-kwote.html", %vars);
|
$main_content .= wrap_template($template, "content-show-kwote.html", %vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# wrap the navigation template
|
# wrap the navigation template
|
||||||
$main_content .= wrap_template($navigation_template, %vars);
|
$main_content .= wrap_template($template, $navigation_template, %vars);
|
||||||
|
|
||||||
##########
|
##########
|
||||||
# action: search (show the search page)
|
# action: search (show the search page)
|
||||||
} elsif ($action eq "search") {
|
} elsif ($action eq "search") {
|
||||||
$vars{TITLE} = "Search";
|
$vars{TITLE} = "Search";
|
||||||
$main_content = wrap_template("html/content-search.html", %vars);
|
$main_content = wrap_template($template, "content-search.html", %vars);
|
||||||
|
|
||||||
##########
|
##########
|
||||||
# action: love
|
# action: love
|
||||||
@ -220,11 +226,11 @@ if ($action eq "add") {
|
|||||||
# show the homepage
|
# show the homepage
|
||||||
} else {
|
} else {
|
||||||
$vars{TITLE} = "The Better kwote Database";
|
$vars{TITLE} = "The Better kwote Database";
|
||||||
$main_content = wrap_template("html/content-default.html", %vars);
|
$main_content = wrap_template($template, "content-default.html", %vars);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# finish the HTML
|
# finish the HTML
|
||||||
render_template("html/header.html", %vars);
|
render_template($template, "header.html", %vars);
|
||||||
print STDOUT $main_content;
|
print STDOUT $main_content;
|
||||||
render_template("html/footer.html", %vars);
|
render_template($template, "footer.html", %vars);
|
||||||
|
Loading…
Reference in New Issue
Block a user