Difference between revisions of "API:EPrints/Apache/Template"
Line 8: | Line 8: | ||
'''EPrints::Apache::Template''' - Template Applying Module | '''EPrints::Apache::Template''' - Template Applying Module | ||
− | |||
− | |||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=head_synopsis --> | <!-- Pod2Wiki=head_synopsis --> | ||
==SYNOPSIS== | ==SYNOPSIS== | ||
− | + | <source lang="perl"><?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> | |
− | + | ...</source> | |
− | + | ||
− | < | ||
− | |||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=head_description --> | <!-- Pod2Wiki=head_description --> | ||
==DESCRIPTION== | ==DESCRIPTION== | ||
− | + | This module renders HTML page content using a template. | |
− | Templates are parsed at | + | 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 [[API:EPrints/Apache/Template#Dynamic_Pins|Dynamic Pins]]. |
− | The page content | + | The page title, content and other core page structures are supplied via [[API:EPrints/Apache/Template#Default_Pins|Default Pins]]. |
− | |||
− | |||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | + | <!-- Pod2Wiki=head_static_html_pages --> | |
− | <!-- Pod2Wiki= | + | ===Static HTML Pages=== |
− | === | + | Static files with the ''.xpage'' extension are rendered using templates: |
− | |||
− | + | <pre> <?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></pre> | ||
− | + | <code><xpage:template></code> 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). | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | |||
<!-- Pod2Wiki=head_default_pins --> | <!-- Pod2Wiki=head_default_pins --> | ||
===Default Pins=== | ===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 [[API:EPrints/Plugin/Screen|EPrints::Plugin::Screen]]s that appear in <code>key_tools</code>. The content from each plugin's <code>render_action_link</code> is rendered as a HTML <ul> list. | ||
− | < | + | : Historically this was the login/logout links plus <code>key_tools</code> but since 3.3 login/logout are Screen plugins as well. |
− | </ | ||
− | |||
− | |||
− | The | + | * languages |
+ | : The <code>render_action_link</code> from [[API:EPrints/Plugin/Screen/SetLang|EPrints::Plugin::Screen::SetLang]]. | ||
− | |||
− | |||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | + | <!-- Pod2Wiki=head_dynamic_pins --> | |
− | <!-- Pod2Wiki= | + | ===Dynamic Pins=== |
− | === | + | In <code>cfg.d/dynamic_template.pl</code>: |
− | + | <pre> $c->{dynamic_template}->{function} = sub { | |
+ | my( $repo, $parts ) = @_; | ||
+ | |||
+ | $parts->{mypin} = $repo->xml->create_text_node( "Hello, World!" ); | ||
+ | };</pre> | ||
− | < | + | In <code>archives/[archiveid]/cfg/templates/default.xml</code> (copy from <code>lib/templates/default.xml</code> if not already exists): |
− | < | ||
− | |||
+ | <pre> <epc:pin ref="mypin" /></pre> | ||
− | + | Or, for just the text content of a pin: | |
− | |||
− | |||
− | |||
− | + | <pre> <epc:pin ref="mypin" textonly="yes" /></pre> | |
− | |||
− | |||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | + | <!-- Pod2Wiki=head_methods --> | |
− | <!-- Pod2Wiki= | + | ==METHODS== |
− | ==== | ||
− | |||
− | |||
− | |||
− | |||
− | |||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | + | <!-- Pod2Wiki=head_see_also --> | |
− | <!-- Pod2Wiki= | + | ==SEE ALSO== |
− | ==== | + | The directories scanned for template sources are in [[API:EPrints/Repository#template_dirs|EPrints::Repository/template_dirs]]. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | + | <!-- Pod2Wiki=head_copyright --> | |
− | <!-- Pod2Wiki= | + | ==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/. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
<!-- Pod2Wiki= --> | <!-- Pod2Wiki= --> | ||
− | + | <!-- Pod2Wiki=_postamble_ --> | |
− | <!-- Pod2Wiki= | ||
− | |||
− | |||
− | |||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
− | |||
− | |||
− | |||
− | |||
− |
Revision as of 15:53, 16 April 2012
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 Dynamic Pins.
The page title, content and other core page structures are supplied via 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/.