API:perl lib/EPrints/Apache/Template.pm
EPrints 3 Reference: Directory Structure - Metadata Fields - Repository Configuration - XML Config Files - XML Export Format - EPrints data structure - Core API - Data Objects
Latest Source Code (3.4, 3.3) | Revision Log | Before editing this page please read Pod2Wiki
Contents
NAME
EPrints::Apache::Template - Template Applying Module
SYNOPSIS
<?xml version="1.0" standalone="no"?>
<!DOCTYPE html SYSTEM "entities.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epc="http://eprints.org/ep3/control">
<head>
<title><epc:pin ref="title" textonly="yes"/> - <epc:phrase ref="archive_name"/></title>
...
DESCRIPTION
This module renders HTML page content using a template.
Templates are parsed and rendered at server start-up, expanding phrases and any EPC. If you need to include dynamic content in the page use use a pin generated via perl_lib/EPrints/Apache/Template.pm/Dynamic Pins.
The page title, content and other core page structures are supplied via perl_lib/EPrints/Apache/Template.pm/Default Pins.
Static HTML Pages
Static files with the .xpage extension are rendered using templates:
<?xml version="1.0" encoding="utf-8" standalone="no" ?> <!DOCTYPE page SYSTEM "entities.dtd" > <xpage:page xmlns="http://www.w3.org/1999/xhtml" xmlns:xpage="http://eprints.org/ep3/xpage" xmlns:epc="http://eprints.org/ep3/control"> <xpage:template>default</xpage:template> <xpage:head> <style type="text/css">h1 { text-weight: bold }</style> </xpage:head> <xpage:title>My first XPage</xpage:title> <xpage:body> Writing XPages is easy. </xpage:body> </xpage:page>
<xpage:template>
is a special pin that, instead of supplying content to the template, changes the template used for rendering. The content is just the template name (without the .xml extension).
Default Pins
- title
- The title of the page.
- page
- The page content.
- login_status_header
- HTML <head> includes for the login status of the user - currently just some JavaScript variables.
- head
- Page-specific HTML <head> contents.
- pagetop
- (Unused?)
- login_status
- A menu containing EPrints::Plugin::Screens that appear in
key_tools
. The content from each plugin'srender_action_link
is rendered as a HTML <ul> list.
- Historically this was the login/logout links plus
key_tools
but since 3.3 login/logout are Screen plugins as well.
- languages
- The
render_action_link
from EPrints::Plugin::Screen::SetLang.
Dynamic Pins
In cfg.d/dynamic_template.pl
:
$c->{dynamic_template}->{function} = sub { my( $repo, $parts ) = @_; $parts->{mypin} = $repo->xml->create_text_node( "Hello, World!" ); };
In archives/[archiveid]/cfg/templates/default.xml
(copy from lib/templates/default.xml
if not already exists):
<epc:pin ref="mypin" />
Or, for just the text content of a pin:
<epc:pin ref="mypin" textonly="yes" />
METHODS
SEE ALSO
The directories scanned for template sources are in EPrints::Repository/template_dirs.
COPYRIGHT
Copyright 2000-2011 University of Southampton.
This file is part of EPrints http://www.eprints.org/.
EPrints is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
EPrints is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with EPrints. If not, see http://www.gnu.org/licenses/.