⧼vector-jumptocontent⧽

API:EPrints/Apache/Template: Difference between revisions

From EPrints Documentation
Pod2wiki (talk | contribs)
No edit summary
Pod2wiki (talk | contribs)
No edit summary
 
(One intermediate revision by the same user not shown)
Line 7: Line 7:
==NAME==
==NAME==
'''EPrints::Apache::Template''' - Template Applying Module
'''EPrints::Apache::Template''' - Template Applying Module
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=head_description -->
==DESCRIPTION==
When HTML pages are served by EPrints they are processed through a  template written in XML. Most repositories will have two templates -  ''default.xml'' for HTTP and ''secure.xml'' for HTTPS.
Templates are parsed at '''server start-up''' and any included phrases  are replaced at that point. Because templates persist over the  lifetime of a server you do not typically perform any logic within  the template itself, instead use a pin generated via [[API:EPrints/Apache/Template#Custom_Pins|Custom Pins]].
The page content is added to the template via <tt>&lt;epc:pins</tt>&gt;.


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 16: Line 31:
</div>
</div>
<!-- Pod2Wiki=head_synopsis -->
<!-- Pod2Wiki=head_synopsis -->
==SYNOPSIS==
===Synopsis===
   &lt;?xml version="1.0" standalone="no"?&gt;
   &lt;?xml version="1.0" standalone="no"?&gt;
   &lt;!DOCTYPE html SYSTEM "entities.dtd"&gt;
   &lt;!DOCTYPE html SYSTEM "entities.dtd"&gt;
Line 24: Line 39:
     ...
     ...
    
    
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<!-- Edit below this comment -->
<!-- Pod2Wiki= -->
</div>
<!-- Pod2Wiki=head_description -->
==DESCRIPTION==
When HTML pages are served by EPrints they are processed through a template written in XML. Most repositories will have two templates - ''default.xml'' for HTTP and ''secure.xml'' for HTTPS.
Templates are parsed at '''server start-up''' and any included phrases are replaced at that point. Because templates persist over the lifetime of a server you do not typically perform any logic within the template itself, instead use a pin generated via [[API:EPrints/Apache/Template#Custom_Pins|Custom Pins]].
The page content is added to the template via &lt;epc:pins&gt;.
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<span style='display:none'>User Comments</span>
<span style='display:none'>User Comments</span>
Line 48: Line 48:
<!-- Pod2Wiki=head_custom_pins -->
<!-- Pod2Wiki=head_custom_pins -->
===Custom Pins===
===Custom Pins===
In <tt>cfg.d/dynamic_template.pl</tt>:
In ''cfg.d/dynamic_template.pl'':


   $c-&gt;{dynamic_template}-&gt;{function} = sub {
   $c-&gt;{dynamic_template}-&gt;{function} = sub {
Line 56: Line 56:
   };
   };
    
    
In <tt>archives/[archiveid]/cfg/templates/default.xml</tt> (copy from <tt>lib/templates/default.xml</tt> if not already exists):
In ''archives/[archiveid]/cfg/templates/default.xml'' (copy from ''lib/templates/default.xml'' if not already exists):


   &lt;epc:pin ref="mypin" /&gt;
   &lt;epc:pin ref="mypin" /&gt;
Line 107: Line 107:
====login_status_header====
====login_status_header====


HTML &lt;head&gt; includes for the login status of the user - currently just some JavaScript variables.
HTML <tt>&lt;head</tt>&gt; includes for the login status of the user - currently just some JavaScript variables.


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 119: Line 119:
====head====
====head====


Page-specific HTML &lt;head&gt; contents.
Page-specific HTML <tt>&lt;head</tt>&gt; contents.


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 143: Line 143:
====login_status====
====login_status====


A menu containing [[API:EPrints/Plugin/Screen|EPrints::Plugin::Screen]]s that appear in <tt>key_tools</tt>. The content from each plugin's <tt>render_action_link</tt> is rendered as a HTML &lt;ul&gt; list.
A menu containing [[API:EPrints/Plugin/Screen|EPrints::Plugin::Screen]]s that appear in <tt>key_tools</tt>. The content from each plugin's <tt>render_action_link</tt> is rendered as a HTML <tt>&lt;ul</tt>&gt; list.


Historically this was the login/logout links plus <tt>key_tools</tt> but since 3.3 login/logout are Screen plugins as well.
Historically this was the login/logout links plus <tt>key_tools</tt> but since 3.3 login/logout are Screen plugins as well.


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
Line 190: Line 190:
<!-- Pod2Wiki=head_see_also -->
<!-- Pod2Wiki=head_see_also -->
==SEE ALSO==
==SEE ALSO==
The directories scanned for template sources are in [[API:EPrints/Repository#template_dirs|EPrints::Repository/template_dirs]].
The directories scanned for template sources are in [[API:EPrints/Repository#template_dirs|EPrints::Repository/template_dirs]].


<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>

Latest revision as of 17:25, 15 March 2023

Latest Source Code (3.4, 3.3) | Revision Log | Before editing this page please read Pod2Wiki


NAME

EPrints::Apache::Template - Template Applying Module

User Comments


DESCRIPTION

When HTML pages are served by EPrints they are processed through a template written in XML. Most repositories will have two templates - default.xml for HTTP and secure.xml for HTTPS.

Templates are parsed at server start-up and any included phrases are replaced at that point. Because templates persist over the lifetime of a server you do not typically perform any logic within the template itself, instead use a pin generated via Custom Pins.

The page content is added to the template via <epc:pins>.

User Comments


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>
   ...
 

User Comments


Custom 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" />
 

User Comments


Default Pins

User Comments


title

The title of the page.

User Comments


page

The page content.

User Comments


login_status_header

HTML <head> includes for the login status of the user - currently just some JavaScript variables.

User Comments


head

Page-specific HTML <head> contents.

User Comments


pagetop

(Unused?)

User Comments


login_status

A menu containing EPrints::Plugin::Screens that appear in key_tools. The content from each plugin's render_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.

User Comments


languages

The render_action_link from EPrints::Plugin::Screen::SetLang.

User Comments


METHODS

User Comments


handler

$rc = EPrints::Apache::Template::handler( $r )

Handler for applying site layout templates.

User Comments


SEE ALSO

The directories scanned for template sources are in EPrints::Repository/template_dirs.

User Comments


COPYRIGHT

© Copyright 2000-2024 University of Southampton.

EPrints 3.4 is supplied by EPrints Services.

http://www.eprints.org/eprints-3.4/

LICENSE

This file is part of EPrints 3.4 http://www.eprints.org/.

EPrints 3.4 and this file are released under the terms of the GNU Lesser General Public License version 3 as published by the Free Software Foundation unless otherwise stated.

EPrints 3.4 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 3.4. If not, see http://www.gnu.org/licenses/.

User Comments