#!/usr/bin/perl # MY.M SERVICE CUPID # $Id: index.cgi,v 1.13 2008/01/21 05:41:37 sedmonds Exp $ use strict; use warnings; use Monash::CourseFinder; use Monash::CourseFinder::CGI qw{ initialise cleanup page_header page_footer get_config get_param display_course_table }; use Monash::CourseFinder::Category; use HTML::Entities qw{ encode_entities }; initialise(); my $action = get_param('action') || q{}; if ( $action eq 'search' ) { my $query = get_param('query') || q{}; if ( $query =~ m{ \A \s* \Z }smx ) { display_form( 'message' => q{Error: please enter at least one search term.}, ); } my @courses = Monash::CourseFinder->search( 'query' => $query, ); if ( @courses ) { display_results( 'courses' => \@courses, 'query' => $query, ); } else { display_form( 'message' => q{No courses were found. Please change your selections and try again.}, ); } } else { display_form(); } ################################### sub display_form { my %arg = @_; page_header( 'heading' => 'Monash Course Finder', 'highlight' => 1, ); print qq{

\n}, ; if ( $arg{'message'} ) { print qq{

}, encode_entities( $arg{'message'} ), qq{

\n}, ; } print qq{
\n}, qq{

For example: accounting, economics, law, medicine

\n}, qq{

\n}, qq{\t\n}, qq{\t\n}, qq{\t\n}, qq{

\n}, qq{
\n}, qq{

Advanced search

\n}, qq{

Browse

\n}, qq{\n}; ; page_footer( 'highlight' => 1, ); cleanup(); exit; } sub display_results { my %arg = @_; page_header( 'heading' => 'Search results', 'breadcrumbs' => [ { 'title' => 'Search results', }, ], ); print qq{

You searched for: }, encode_entities( $arg{'query'} ), qq{

\n}, ; display_course_table( 'courses' => $arg{'courses'}, 'query' => $arg{'query'}, ); page_footer(); cleanup; exit; };