NAME
WWW::Page - XSLT-based and XML-configured web-site engine.
SYNOPSIS
Main CGI script
use WWW::Page;
use encoding 'utf-8';
my $page = new WWW::Page ({
'xslt-root' => "$ENV{'DOCUMENT_ROOT'}/../data/xsl",
});
print $page->as_string();
XML-configuration of a page
<?xml version="1.0" encoding="UTF-8"?>
<page
import="Import::Client"
transform="view.xsl"
xmlns:page="urn:www-page">
<manifest>
<title>WWW::Page Web-Site</title>
<locale>en-gb</locale>
<page:keyword-list/>
</manifest>
<content>
<page:month-calendar/>
</content>
</page>
Parts of imported controller script
package Import::Client;
use utf8;
use XML::LibXML;
sub keywordList
{
my $this = shift;
my $page = shift;
my $node = shift;
my $args = shift;
my $sth = $dbh->prepare ("select keyword, uri from keywords order by keyword");
$sth->execute();
while (my ($keyword, $uri) = $sth->fetchrow_array())
{
my $item = $page->{'xml'}->createElement ('item');
$item->appendText ($keyword);
$item->setAttribute ('uri', $uri);
$node->appendChild ($item);
}
return $node;
}
ABSTRACT
WWW::Page makes web-site built on XSLT technology easy to start.
DESCRIPTION
This distributive contains 'example' folder with a copy of a web-site built on WWW::Page.
EXAMPLE
Example of how to use WWW::Page module for creating XSLT-based web-site.
This example is a demonstration of how to create a blog with tagging, search and month-calendar.
Enroll your http://localhost/ (or whatever) and ensure the following:
1. document root is beeing pointed to example/www; 2. allow .htaccess for example/www; 3. point script aliases to example/cgi; 4. create database 'blog' and update its credentials at example/cgi/Import/Datasource.pm.
Database scheme is in example/data/scheme.sql, sample data are in example/data/example-data.sql.
Use http://localhost/ to view the web-site, and http://localhost/adm/ to add or edit messages.
Future versions of WWW::Page will have more detailed description.
Known limitations
GET and POST parser cannot accept uploaded files and Unicode-encoded strings.
Example does allow only one editor user; only latin symbols may be in keyword list.
AUTHOR
Andrew Shitov, <andy@shitov.ru>
COPYRIGHT AND LICENCE
WWW::Page module is a free software. You may resistribute and (or) modify it under the same terms as Perl.