=head1 NAME
XAO::DO::Web::Header - Simple HTML header
=head1 SYNOPSIS
Currently is only useful in XAO::Web site context.
=head1 DESCRIPTION
Simple HTML header object. Accepts the following arguments, modifies
them as appropriate and displays "/bits/page-header" template passing the
rest of arguments unmodified.
=over
=item title => 'Page title'
Passed as is.
=item description => 'Page description for search engines'
This is converted to
.
=item keywords => 'Page keywords for search engines'
This is converted to
.
=item path => '/bits/alternative-template-path'
Header template path, default is "/bits/page-header".
=item type => 'text/csv'
Allows you to set page type to something different then default
"text/html". If you set type the template would not be displayed! If you
still need it - call Header again without "type" argument.
=back
Would pass the folowing arguments to the template:
=over
=item META
Keywords and description combined.
=item TITLE
The value of 'title' argument above.
=back
Example:
<%Header title="Site Search" keywords="super, duper, hyper, commerce"%>
=head1 METHODS
No publicly available methods except overriden display().
=head1 EXPORTS
Nothing.
=head1 AUTHOR
Copyright (c) 2005 Andrew Maltsev
Copyright (c) 2001-2004 Andrew Maltsev, XAO Inc.
-- http://ejelta.com/xao/
=head1 SEE ALSO
Recommended reading:
L,
L.
=cut
###############################################################################
package XAO::DO::Web::Header;
use strict;
use XAO::Utils;
use XAO::Objects;
use base XAO::Objects->load(objname => 'Web::Page');
use vars qw($VERSION);
$VERSION=(0+sprintf('%u.%03u',(q$Id: Header.pm,v 2.1 2005/01/14 01:39:57 am Exp $ =~ /\s(\d+)\.(\d+)\s/))) || die "Bad VERSION";
###############################################################################
# Displaying HTML header.
#
sub display ($;%) {
my $self=shift;
my $args=get_args(\@_);
if($args->{type}) {
$self->siteconfig->header_args(-type => $args->{type});
return;
}
if($args->{'http.name'}) {
$self->siteconfig->header_args(
$args->{'http.name'} => $args->{'http.value'} || ''
);
return;
}
my $meta="";
$meta.=qq(\n) if $args->{keywords};
$meta.=qq(\n) if $args->{description};
$self->SUPER::display(merge_refs($args, {
path => $args->{path} || "/bits/page-header",
TITLE => $args->{title} || "XAO::Web -- No Title",
GIVEN_TITLE => $args->{title} || '',
META => $meta,
}));
}
###############################################################################
1;