Jump to content
Wiki Home
EPrints Home
Bazaar
Files
Main menu
Main menu
move to sidebar
hide
Navigation
Front Page
EPrints 3 Manual
EPrints Training Course
EPrints Glossary
Installing EPrints
How-to Configure EPrints
EPrints 3.2+ API
EPrints 3 Reference
EPrints Plugins
Wiki
All categories
Recent changes
Main Page
Help
EPrints Documentation
Search
Search
Appearance
Log in
Request account
Personal tools
Log in
Request account
Pages for logged out editors
learn more
Contributions
Talk
Editing
Branding with confidence
(section)
Page
Discussion
British English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Special pages
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Taking control== This section describes techniques for taking complete control of the appearance of your repository. ===Changing the page layout=== Every page in your repository is displayed using a single template. A custom layout can be applied to your repository pages by editing this template. Copy the default layout to your repository: cp lib/templates/default.xml archives/ARCHIVEID/cfg/templates/default.xml Open the template file for your repository: archives/ARCHIVEID/cfg/templates/default.xml The template is an XHTML file with some additional syntax (see [[API:EPrints/Apache/Template]]). ====Pins==== You will notice a number of epc:pin elements. These tell EPrints how to combine the template with page-specific content to build each individual page. '''Example <source lang="xml"> <div> <div class="ep_tm_page_content"> <h1 class="ep_tm_pagetitle"> <epc:pin ref="title"/> </h1> <epc:pin ref="page"/> </div> </div> </source> This part of the template lays out the main content area of the page (the ''page'' pin) which is centered on the page. You can incorporate the epc:pin elements however you like into your new layout (although note that the head pin should always be inside the head section of the template, and the pagetop pin should be at the start of the body section). You can also define new pins (see below). ====Configuration Strings==== There are also a number of epc:print elements in the default template which are useful for including configuration values in the template. '''Example <source lang="html4strict"> <style type="text/css" media="screen">@import url(<epc:print expr="$config{base_url}"/>/style/auto.css);</style> </source> This extract from the head section of the template shows how an epc:print element is used to refer to the base URL of the repository. This avoids hardcoding URLs into the template (which is good for maintainability - if the repository URL should change, you do not have to change the template). Configuration values can also be used inside attributes, using the {...} syntax. '''Example <source lang="html4strict"> <a href="{$config{frontpage}}"><img alt="Logo" src="{$config{site_logo}}" /></a> </source> This extract shows how the URL of both the front page of the repository and the logo are derived from the configuration rather than being hard coded directly into the template. ====Template checklist==== A typical repository page layout will include: # the correct XML declaration at the top of the file # a head section (load default and custom stylesheets, ''title'' and ''head'' pins) # a body section, containing: ## ''pagetop'' pin ## header (repository title and logo) ## navigation menu (links to browse, search etc.) ## quick search box ## toolbar (''login_status'' and ''toolbar'' pins) ## main content area (''title'' and ''page'' pins) ## footer (copyright notice etc.) ====Loading the new template==== Load your new template by running: bin/epadmin reload ARCHIVEID ====Dealing with template errors==== A common cause of errors when loading a new template is that the template is not ''well formed''. The template is in XHTML syntax, and therefore must follow the rules for writing well-formed XML documents: * http://en.wikipedia.org/wiki/XML#Well-formed_documents '''Example You get the following error when reloading the template: parser error : Opening and ending tag mismatch: img line 25 and div Open the template file, and look for an img tag on line 25: <img src="/images/mylogo.gif"> The problem is that the img tag is opened, but there is no closing img tag. The img element is empty, so we can add a self-closing tag to make the eleemtn well formed: <img src="/images/mylogo.gif" /> '''Example parser error : Opening and ending tag mismatch: p line 60 and body Open the template file and look for the p tag on line 60: <pre> <p>This repository is maintained by the <b>Library and Computing team</b>. </pre> There is no closing p tag. The p element is not empty, so we add a closing p tag at the end of the paragraph to make the element well formed: <pre> <p>This repository is maintained by the <b>Library and Computing team</b>.</p> </pre> ===Adding extra images=== If your new layout requires additional images, or if you want to add additional images to the default layout, you need to place a copy of each image in your repository's image directory: archives/ARCHIVEID/cfg/static/images/ '''Example Place a copy of small_logo.gif in: archives/ARCHIVEID/cfg/static/images/ Use the image in the template: <source lang="html4strict"> <img src="{$config{base_url}}/images/small_logo.gif" /> </source> ===Working with stylesheets=== EPrints has [[EPrints_Directory_Structure/eprints3/lib/static/style/auto|several stylesheet files]], each of which contains style rules for a specific aspect of the repository. By default these stylesheets are applied to every repository page, in alphabetical order. The default stylesheets can be found here: lib/static/style/auto/ ====Overriding default style rules==== You may decide that you want to override a particular rule in one of the default stylesheets. Rather than edit the default stylesheet directly (since the edited rule will then be applied to any other repositories running on the same server), you should override the rule in your repository's overrides file: archives/ARCHIVEID/cfg/static/style/auto/zzz_local.css Remember that the stylesheets are applied in alphabetical order, so this file will be applied last. '''Example <source lang="css"> h1 { margin: 0px 0px 10px 0px; font: bold 130% Arial,Sans-serif; text-align: center; color: #606060; } </source> This rule is from general.css and defines how the h1 (heading level 1) element should be displayed (in the default template, h1 is used to display the title of the page). Edit the local overrides file for your repository: archives/ARCHIVEID/cfg/static/style/auto/zzz_local.css Override the ''font'' part of the h1 style: <source lang="css"> h1 { font: bold 200% Arial,Sans-serif; } </source> This renders the page title on each page in a larger font. ====Overriding default stylesheets==== If you want to override a default stylesheet in its entirety, you should copy it into your repository's stylesheet directory and edit it there. '''Example Make a copy of the default stylesheet general.css: cp lib/static/style/auto/general.css archives/ARCHIVEID/cfg/static/style/auto/ Edit the repository copy: archives/ARCHIVEID/cfg/static/style/auto/general.css After making changes to the repository copy of general.css, apply the new stylesheet by running: bin/generate_static ARCHIVEID ====Adding institutional stylesheets==== Your institutional Web site may already have a stylesheet or set of stylesheets that you want to apply to your repository. Copy the institutional stylesheets into your repository stylesheet directory: archives/ARCHIVEID/cfg/static/style/ Process the stylesheets by running: bin/generate_static ARCHIVEID The stylesheets are then available to use in the template file. '''Example <source lang="html4strict"> <head> ... <style type="text/css" media="screen">@import url(<epc:print expr="$config{base_url}"/>/style/auto.css);</style> <style type="text/css" media="screen">@import url(<epc:print expr="$config{base_url}"/>/style/my_inst.css);</style> </source> Here we add a stylesheet link to our institutional stylesheet my_inst.css to the head section of the template. Note that we apply my_inst.css ''after'' the repository stylesheets (applied in order by auto.css) so that the institutional style rules override the repository style rules. ====Adding extra style-related images==== If your new stylesheet requires additional images (eg. background images for tables or divs), you need to place a copy of each image in your repository style/image directory: archives/ARCHIVEID/cfg/static/style/images/ Note that this keeps the style-related images separate from other images used by your repository pages, such as logos. The images can then be used in your stylesheet. ===Adding dynamic content=== You can add dynamic content to the template by adding extra epc:pin elements. Dynamic pins can be created in the dynamic template configuration file: archives/ARCHIVEID/cfg/cfg.d/dynamic_template.pl '''Example Open the template file for your repository: archives/ARCHIVEID/cfg/lang/en/templates/default.xml Add a new pin called ''todays_date'' to the template; here we add the pin next to the user's login status: <source lang="html4strict"> <div> <div class="ep_tm_page_content"> <h1 class="ep_tm_pagetitle"> <epc:pin ref="title"/> </h1> <epc:pin ref="page"/> <epc:pin ref="todays_date"/> </div> </div> </source> Open the dynamic template configuration file for your repository: archives/ARCHIVEID/cfg/cfg.d/dynamic_template.pl Find and uncomment the function that creates the content for the dynamic pins: <source lang="perl"> $c->{dynamic_template}->{function} = sub { my( $repository, $parts ) = @_; }; </source> Add a line which creates the content for the ''todays_date'' pin: <source lang="perl"> $c->{dynamic_template}->{function} = sub { my( $repository, $parts ) = @_; $parts->{todays_date} = $repository->make_text( scalar localtime ); }; </source> Reload the dynamic template configuration: bin/epadmin reload ARCHIVEID The date should now be displayed on your repository pages.
Summary:
Please note that all contributions to EPrints Documentation may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
EPrints Documentation:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)