w00t
This commit is contained in:
		@@ -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);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user