| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <HTML |
| ><HEAD |
| ><TITLE |
| >Template Customization</TITLE |
| ><META |
| NAME="GENERATOR" |
| CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK |
| REL="HOME" |
| TITLE="The Bugzilla Guide - 2.20.1 |
| Release" |
| HREF="index.html"><LINK |
| REL="UP" |
| TITLE="Customising Bugzilla" |
| HREF="customization.html"><LINK |
| REL="PREVIOUS" |
| TITLE="Customising Bugzilla" |
| HREF="customization.html"><LINK |
| REL="NEXT" |
| TITLE="Template Hooks" |
| HREF="cust-hooks.html"></HEAD |
| ><BODY |
| CLASS="section" |
| BGCOLOR="#FFFFFF" |
| TEXT="#000000" |
| LINK="#0000FF" |
| VLINK="#840084" |
| ALINK="#0000FF" |
| ><DIV |
| CLASS="NAVHEADER" |
| ><TABLE |
| SUMMARY="Header navigation table" |
| WIDTH="100%" |
| BORDER="0" |
| CELLPADDING="0" |
| CELLSPACING="0" |
| ><TR |
| ><TH |
| COLSPAN="3" |
| ALIGN="center" |
| >The Bugzilla Guide - 2.20.1 |
| Release</TH |
| ></TR |
| ><TR |
| ><TD |
| WIDTH="10%" |
| ALIGN="left" |
| VALIGN="bottom" |
| ><A |
| HREF="customization.html" |
| ACCESSKEY="P" |
| >Prev</A |
| ></TD |
| ><TD |
| WIDTH="80%" |
| ALIGN="center" |
| VALIGN="bottom" |
| >Chapter 5. Customising Bugzilla</TD |
| ><TD |
| WIDTH="10%" |
| ALIGN="right" |
| VALIGN="bottom" |
| ><A |
| HREF="cust-hooks.html" |
| ACCESSKEY="N" |
| >Next</A |
| ></TD |
| ></TR |
| ></TABLE |
| ><HR |
| ALIGN="LEFT" |
| WIDTH="100%"></DIV |
| ><DIV |
| CLASS="section" |
| ><H1 |
| CLASS="section" |
| ><A |
| NAME="cust-templates" |
| >5.1. Template Customization</A |
| ></H1 |
| ><P |
| > Administrators can configure the look and feel of Bugzilla without |
| having to edit Perl files or face the nightmare of massive merge |
| conflicts when they upgrade to a newer version in the future. |
| </P |
| ><P |
| > Templatization also makes localized versions of Bugzilla possible, |
| for the first time. It's possible to have Bugzilla's UI language |
| determined by the user's browser. More information is available in |
| <A |
| HREF="cust-templates.html#template-http-accept" |
| >Section 5.1.6</A |
| >. |
| </P |
| ><DIV |
| CLASS="section" |
| ><H2 |
| CLASS="section" |
| ><A |
| NAME="template-directory" |
| >5.1.1. Template Directory Structure</A |
| ></H2 |
| ><P |
| > The template directory structure starts with top level directory |
| named <TT |
| CLASS="filename" |
| >template</TT |
| >, which contains a directory |
| for each installed localization. The next level defines the |
| language used in the templates. Bugzilla comes with English |
| templates, so the directory name is <TT |
| CLASS="filename" |
| >en</TT |
| >, |
| and we will discuss <TT |
| CLASS="filename" |
| >template/en</TT |
| > throughout |
| the documentation. Below <TT |
| CLASS="filename" |
| >template/en</TT |
| > is the |
| <TT |
| CLASS="filename" |
| >default</TT |
| > directory, which contains all the |
| standard templates shipped with Bugzilla. |
| </P |
| ><DIV |
| CLASS="warning" |
| ><P |
| ></P |
| ><TABLE |
| CLASS="warning" |
| WIDTH="100%" |
| BORDER="0" |
| ><TR |
| ><TD |
| WIDTH="25" |
| ALIGN="CENTER" |
| VALIGN="TOP" |
| ><IMG |
| SRC="../images/warning.gif" |
| HSPACE="5" |
| ALT="Warning"></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| > A directory <TT |
| CLASS="filename" |
| >data/templates</TT |
| > also exists; |
| this is where Template Toolkit puts the compiled versions of |
| the templates from either the default or custom directories. |
| <EM |
| >Do not</EM |
| > directly edit the files in this |
| directory, or all your changes will be lost the next time |
| Template Toolkit recompiles the templates. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><H2 |
| CLASS="section" |
| ><A |
| NAME="template-method" |
| >5.1.2. Choosing a Customization Method</A |
| ></H2 |
| ><P |
| > If you want to edit Bugzilla's templates, the first decision |
| you must make is how you want to go about doing so. There are two |
| choices, and which you use depends mainly on the scope of your |
| modifications, and the method you plan to use to upgrade Bugzilla. |
| </P |
| ><P |
| > The first method of making customizations is to directly edit the |
| templates found in <TT |
| CLASS="filename" |
| >template/en/default</TT |
| >. |
| This is probably the best way to go about it if you are going to |
| be upgrading Bugzilla through CVS, because if you then execute |
| a <B |
| CLASS="command" |
| >cvs update</B |
| >, any changes you have made will |
| be merged automagically with the updated versions. |
| </P |
| ><DIV |
| CLASS="note" |
| ><P |
| ></P |
| ><TABLE |
| CLASS="note" |
| WIDTH="100%" |
| BORDER="0" |
| ><TR |
| ><TD |
| WIDTH="25" |
| ALIGN="CENTER" |
| VALIGN="TOP" |
| ><IMG |
| SRC="../images/note.gif" |
| HSPACE="5" |
| ALT="Note"></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| > If you use this method, and CVS conflicts occur during an |
| update, the conflicted templates (and possibly other parts |
| of your installation) will not work until they are resolved. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > The second method is to copy the templates to be modified |
| into a mirrored directory structure under |
| <TT |
| CLASS="filename" |
| >template/en/custom</TT |
| >. Templates in this |
| directory structure automatically override any identically-named |
| and identically-located templates in the |
| <TT |
| CLASS="filename" |
| >default</TT |
| > directory. |
| </P |
| ><DIV |
| CLASS="note" |
| ><P |
| ></P |
| ><TABLE |
| CLASS="note" |
| WIDTH="100%" |
| BORDER="0" |
| ><TR |
| ><TD |
| WIDTH="25" |
| ALIGN="CENTER" |
| VALIGN="TOP" |
| ><IMG |
| SRC="../images/note.gif" |
| HSPACE="5" |
| ALT="Note"></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| > The <TT |
| CLASS="filename" |
| >custom</TT |
| > directory does not exist |
| at first and must be created if you want to use it. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > The second method of customization should be used if you |
| use the overwriting method of upgrade, because otherwise |
| your changes will be lost. This method may also be better if |
| you are using the CVS method of upgrading and are going to make major |
| changes, because it is guaranteed that the contents of this directory |
| will not be touched during an upgrade, and you can then decide whether |
| to continue using your own templates, or make the effort to merge your |
| changes into the new versions by hand. |
| </P |
| ><P |
| > Using this method, your installation may break if incompatible |
| changes are made to the template interface. Such changes should |
| be documented in the release notes, provided you are using a |
| stable release of Bugzilla. If you use using unstable code, you will |
| need to deal with this one yourself, although if possible the changes |
| will be mentioned before they occur in the deprecations section of the |
| previous stable release's release notes. |
| </P |
| ><DIV |
| CLASS="note" |
| ><P |
| ></P |
| ><TABLE |
| CLASS="note" |
| WIDTH="100%" |
| BORDER="0" |
| ><TR |
| ><TD |
| WIDTH="25" |
| ALIGN="CENTER" |
| VALIGN="TOP" |
| ><IMG |
| SRC="../images/note.gif" |
| HSPACE="5" |
| ALT="Note"></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| > Regardless of which method you choose, it is recommended that |
| you run <B |
| CLASS="command" |
| >./checksetup.pl</B |
| > after creating or |
| editing any templates in the <TT |
| CLASS="filename" |
| >template/en/default</TT |
| > |
| directory, and after editing any templates in the |
| <TT |
| CLASS="filename" |
| >custom</TT |
| > directory. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><DIV |
| CLASS="warning" |
| ><P |
| ></P |
| ><TABLE |
| CLASS="warning" |
| WIDTH="100%" |
| BORDER="0" |
| ><TR |
| ><TD |
| WIDTH="25" |
| ALIGN="CENTER" |
| VALIGN="TOP" |
| ><IMG |
| SRC="../images/warning.gif" |
| HSPACE="5" |
| ALT="Warning"></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| > It is <EM |
| >required</EM |
| > that you run |
| <B |
| CLASS="command" |
| >./checksetup.pl</B |
| > after creating a new |
| template in the <TT |
| CLASS="filename" |
| >custom</TT |
| > directory. Failure |
| to do so will raise an incomprehensible error message. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><H2 |
| CLASS="section" |
| ><A |
| NAME="template-edit" |
| >5.1.3. How To Edit Templates</A |
| ></H2 |
| ><DIV |
| CLASS="note" |
| ><P |
| ></P |
| ><TABLE |
| CLASS="note" |
| WIDTH="100%" |
| BORDER="0" |
| ><TR |
| ><TD |
| WIDTH="25" |
| ALIGN="CENTER" |
| VALIGN="TOP" |
| ><IMG |
| SRC="../images/note.gif" |
| HSPACE="5" |
| ALT="Note"></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| > If you are making template changes that you intend on submitting back |
| for inclusion in standard Bugzilla, you should read the relevant |
| sections of the |
| <A |
| HREF="http://www.bugzilla.org/docs/developer.html" |
| TARGET="_top" |
| >Developers' |
| Guide</A |
| >. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > The syntax of the Template Toolkit language is beyond the scope of |
| this guide. It's reasonably easy to pick up by looking at the current |
| templates; or, you can read the manual, available on the |
| <A |
| HREF="http://www.template-toolkit.org" |
| TARGET="_top" |
| >Template Toolkit home |
| page</A |
| >. |
| </P |
| ><P |
| > One thing you should take particular care about is the need |
| to properly HTML filter data that has been passed into the template. |
| This means that if the data can possibly contain special HTML characters |
| such as <, and the data was not intended to be HTML, they need to be |
| converted to entity form, i.e. &lt;. You use the 'html' filter in the |
| Template Toolkit to do this. If you forget, you may open up |
| your installation to cross-site scripting attacks. |
| </P |
| ><P |
| > Also note that Bugzilla adds a few filters of its own, that are not |
| in standard Template Toolkit. In particular, the 'url_quote' filter |
| can convert characters that are illegal or have special meaning in URLs, |
| such as &, to the encoded form, i.e. %26. This actually encodes most |
| characters (but not the common ones such as letters and numbers and so |
| on), including the HTML-special characters, so there's never a need to |
| HTML filter afterwards. |
| </P |
| ><P |
| > Editing templates is a good way of doing a <SPAN |
| CLASS="QUOTE" |
| >"poor man's custom |
| fields"</SPAN |
| >. |
| For example, if you don't use the Status Whiteboard, but want to have |
| a free-form text entry box for <SPAN |
| CLASS="QUOTE" |
| >"Build Identifier"</SPAN |
| >, |
| then you can just |
| edit the templates to change the field labels. It's still be called |
| status_whiteboard internally, but your users don't need to know that. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><H2 |
| CLASS="section" |
| ><A |
| NAME="template-formats" |
| >5.1.4. Template Formats and Types</A |
| ></H2 |
| ><P |
| > Some CGI's have the ability to use more than one template. For example, |
| <TT |
| CLASS="filename" |
| >buglist.cgi</TT |
| > can output itself as RDF, or as two |
| formats of HTML (complex and simple). The mechanism that provides this |
| feature is extensible. |
| </P |
| ><P |
| > Bugzilla can support different types of output, which again can have |
| multiple formats. In order to request a certain type, you can append |
| the &ctype=<contenttype> (such as rdf or html) to the |
| <TT |
| CLASS="filename" |
| ><cginame>.cgi</TT |
| > URL. If you would like to |
| retrieve a certain format, you can use the &format=<format> |
| (such as simple or complex) in the URL. |
| </P |
| ><P |
| > To see if a CGI supports multiple output formats and types, grep the |
| CGI for <SPAN |
| CLASS="QUOTE" |
| >"GetFormat"</SPAN |
| >. If it's not present, adding |
| multiple format/type support isn't too hard - see how it's done in |
| other CGIs, e.g. config.cgi. |
| </P |
| ><P |
| > To make a new format template for a CGI which supports this, |
| open a current template for |
| that CGI and take note of the INTERFACE comment (if present.) This |
| comment defines what variables are passed into this template. If |
| there isn't one, I'm afraid you'll have to read the template and |
| the code to find out what information you get. |
| </P |
| ><P |
| > Write your template in whatever markup or text style is appropriate. |
| </P |
| ><P |
| > You now need to decide what content type you want your template |
| served as. The content types are defined in the |
| <TT |
| CLASS="filename" |
| >Bugzilla/Constants.pm</TT |
| > file in the |
| <TT |
| CLASS="filename" |
| >contenttypes</TT |
| > |
| constant. If your content type is not there, add it. Remember |
| the three- or four-letter tag assigned to your content type. |
| This tag will be part of the template filename. |
| </P |
| ><DIV |
| CLASS="note" |
| ><P |
| ></P |
| ><TABLE |
| CLASS="note" |
| WIDTH="100%" |
| BORDER="0" |
| ><TR |
| ><TD |
| WIDTH="25" |
| ALIGN="CENTER" |
| VALIGN="TOP" |
| ><IMG |
| SRC="../images/note.gif" |
| HSPACE="5" |
| ALT="Note"></TD |
| ><TD |
| ALIGN="LEFT" |
| VALIGN="TOP" |
| ><P |
| > After adding or changing a content type, it's suitable to edit |
| <TT |
| CLASS="filename" |
| >Bugzilla/Constants.pm</TT |
| > in order to reflect |
| the changes. Also, the file should be kept up to date after an |
| upgrade if content types have been customized in the past. |
| </P |
| ></TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ><P |
| > Save the template as <TT |
| CLASS="filename" |
| ><stubname>-<formatname>.<contenttypetag>.tmpl</TT |
| >. |
| Try out the template by calling the CGI as |
| <TT |
| CLASS="filename" |
| ><cginame>.cgi?format=<formatname>&ctype=<type></TT |
| > . |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><H2 |
| CLASS="section" |
| ><A |
| NAME="template-specific" |
| >5.1.5. Particular Templates</A |
| ></H2 |
| ><P |
| > There are a few templates you may be particularly interested in |
| customizing for your installation. |
| </P |
| ><P |
| > <B |
| CLASS="command" |
| >index.html.tmpl</B |
| >: |
| This is the Bugzilla front page. |
| </P |
| ><P |
| > <B |
| CLASS="command" |
| >global/header.html.tmpl</B |
| >: |
| This defines the header that goes on all Bugzilla pages. |
| The header includes the banner, which is what appears to users |
| and is probably what you want to edit instead. However the |
| header also includes the HTML HEAD section, so you could for |
| example add a stylesheet or META tag by editing the header. |
| </P |
| ><P |
| > <B |
| CLASS="command" |
| >global/banner.html.tmpl</B |
| >: |
| This contains the <SPAN |
| CLASS="QUOTE" |
| >"banner"</SPAN |
| >, the part of the header |
| that appears |
| at the top of all Bugzilla pages. The default banner is reasonably |
| barren, so you'll probably want to customize this to give your |
| installation a distinctive look and feel. It is recommended you |
| preserve the Bugzilla version number in some form so the version |
| you are running can be determined, and users know what docs to read. |
| </P |
| ><P |
| > <B |
| CLASS="command" |
| >global/footer.html.tmpl</B |
| >: |
| This defines the footer that goes on all Bugzilla pages. Editing |
| this is another way to quickly get a distinctive look and feel for |
| your Bugzilla installation. |
| </P |
| ><P |
| > <B |
| CLASS="command" |
| >global/variables.none.tmpl</B |
| >: |
| This defines a list of terms that may be changed in order to |
| <SPAN |
| CLASS="QUOTE" |
| >"brand"</SPAN |
| > the Bugzilla instance In this way, terms |
| like <SPAN |
| CLASS="QUOTE" |
| >"bugs"</SPAN |
| > can be replaced with <SPAN |
| CLASS="QUOTE" |
| >"issues"</SPAN |
| > |
| across the whole Bugzilla installation. The name |
| <SPAN |
| CLASS="QUOTE" |
| >"Bugzilla"</SPAN |
| > and other words can be customized as well. |
| </P |
| ><P |
| > <B |
| CLASS="command" |
| >list/table.html.tmpl</B |
| >: |
| This template controls the appearance of the bug lists created |
| by Bugzilla. Editing this template allows per-column control of |
| the width and title of a column, the maximum display length of |
| each entry, and the wrap behaviour of long entries. |
| For long bug lists, Bugzilla inserts a 'break' every 100 bugs by |
| default; this behaviour is also controlled by this template, and |
| that value can be modified here. |
| </P |
| ><P |
| > <B |
| CLASS="command" |
| >bug/create/user-message.html.tmpl</B |
| >: |
| This is a message that appears near the top of the bug reporting page. |
| By modifying this, you can tell your users how they should report |
| bugs. |
| </P |
| ><P |
| > <B |
| CLASS="command" |
| >bug/process/midair.html.tmpl</B |
| >: |
| This is the page used if two people submit simultaneous changes to the |
| same bug. The second person to submit their changes will get this page |
| to tell them what the first person did, and ask if they wish to |
| overwrite those changes or go back and revisit the bug. The default |
| title and header on this page read "Mid-air collision detected!" If |
| you work in the aviation industry, or other environment where this |
| might be found offensive (yes, we have true stories of this happening) |
| you'll want to change this to something more appropriate for your |
| environment. |
| </P |
| ><P |
| > <B |
| CLASS="command" |
| >bug/create/create.html.tmpl</B |
| > and |
| <B |
| CLASS="command" |
| >bug/create/comment.txt.tmpl</B |
| >: |
| You may not wish to go to the effort of creating custom fields in |
| Bugzilla, yet you want to make sure that each bug report contains |
| a number of pieces of important information for which there is not |
| a special field. The bug entry system has been designed in an |
| extensible fashion to enable you to add arbitrary HTML widgets, |
| such as drop-down lists or textboxes, to the bug entry page |
| and have their values appear formatted in the initial comment. |
| A hidden field that indicates the format should be added inside |
| the form in order to make the template functional. Its value should |
| be the suffix of the template filename. For example, if the file |
| is called <TT |
| CLASS="filename" |
| >create-cust.html.tmpl</TT |
| >, then |
| <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| ><input type="hidden" name="format" value="cust"></PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| should be used inside the form. |
| </P |
| ><P |
| > |
| An example of this is the mozilla.org |
| <A |
| HREF="http://landfill.bugzilla.org/bugzilla-tip/enter_bug.cgi?product=WorldControl&format=guided" |
| TARGET="_top" |
| >guided |
| bug submission form</A |
| >. The code for this comes with the Bugzilla |
| distribution as an example for you to copy. It can be found in the |
| files |
| <TT |
| CLASS="filename" |
| >create-guided.html.tmpl</TT |
| > and |
| <TT |
| CLASS="filename" |
| >comment-guided.html.tmpl</TT |
| >. |
| </P |
| ><P |
| > So to use this feature, create a custom template for |
| <TT |
| CLASS="filename" |
| >enter_bug.cgi</TT |
| >. The default template, on which you |
| could base it, is |
| <TT |
| CLASS="filename" |
| >custom/bug/create/create.html.tmpl</TT |
| >. |
| Call it <TT |
| CLASS="filename" |
| >create-<formatname>.html.tmpl</TT |
| >, and |
| in it, add widgets for each piece of information you'd like |
| collected - such as a build number, or set of steps to reproduce. |
| </P |
| ><P |
| > Then, create a template like |
| <TT |
| CLASS="filename" |
| >custom/bug/create/comment.txt.tmpl</TT |
| >, and call it |
| <TT |
| CLASS="filename" |
| >comment-<formatname>.txt.tmpl</TT |
| >. This |
| template should reference the form fields you have created using |
| the syntax <TT |
| CLASS="filename" |
| >[% form.<fieldname> %]</TT |
| >. When a |
| bug report is |
| submitted, the initial comment attached to the bug report will be |
| formatted according to the layout of this template. |
| </P |
| ><P |
| > For example, if your custom enter_bug template had a field |
| <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| ><input type="text" name="buildid" size="30"></PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| and then your comment.txt.tmpl had |
| <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| >BuildID: [% form.buildid %]</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| then something like |
| <TABLE |
| BORDER="0" |
| BGCOLOR="#E0E0E0" |
| WIDTH="100%" |
| ><TR |
| ><TD |
| ><FONT |
| COLOR="#000000" |
| ><PRE |
| CLASS="programlisting" |
| >BuildID: 20020303</PRE |
| ></FONT |
| ></TD |
| ></TR |
| ></TABLE |
| > |
| would appear in the initial comment. |
| </P |
| ></DIV |
| ><DIV |
| CLASS="section" |
| ><H2 |
| CLASS="section" |
| ><A |
| NAME="template-http-accept" |
| >5.1.6. Configuring Bugzilla to Detect the User's Language</A |
| ></H2 |
| ><P |
| >Bugzilla honours the user's Accept: HTTP header. You can install |
| templates in other languages, and Bugzilla will pick the most appropriate |
| according to a priority order defined by you. Many |
| language templates can be obtained from <A |
| HREF="http://www.bugzilla.org/download.html#localizations" |
| TARGET="_top" |
| >http://www.bugzilla.org/download.html#localizations</A |
| >. Instructions |
| for submitting new languages are also available from that location. |
| </P |
| ><P |
| >After untarring the localizations (or creating your own) in the |
| <TT |
| CLASS="filename" |
| >BUGZILLA_ROOT/template</TT |
| > directory, |
| you must update the <VAR |
| CLASS="option" |
| >languages</VAR |
| > parameter to contain any |
| localizations you'd like to permit. You may also wish to set the |
| <VAR |
| CLASS="option" |
| >defaultlanguage</VAR |
| > parameter to something other than |
| <SPAN |
| CLASS="QUOTE" |
| >"en"</SPAN |
| > if you don't want Engish to be the default language. |
| </P |
| ></DIV |
| ></DIV |
| ><DIV |
| CLASS="NAVFOOTER" |
| ><HR |
| ALIGN="LEFT" |
| WIDTH="100%"><TABLE |
| SUMMARY="Footer navigation table" |
| WIDTH="100%" |
| BORDER="0" |
| CELLPADDING="0" |
| CELLSPACING="0" |
| ><TR |
| ><TD |
| WIDTH="33%" |
| ALIGN="left" |
| VALIGN="top" |
| ><A |
| HREF="customization.html" |
| ACCESSKEY="P" |
| >Prev</A |
| ></TD |
| ><TD |
| WIDTH="34%" |
| ALIGN="center" |
| VALIGN="top" |
| ><A |
| HREF="index.html" |
| ACCESSKEY="H" |
| >Home</A |
| ></TD |
| ><TD |
| WIDTH="33%" |
| ALIGN="right" |
| VALIGN="top" |
| ><A |
| HREF="cust-hooks.html" |
| ACCESSKEY="N" |
| >Next</A |
| ></TD |
| ></TR |
| ><TR |
| ><TD |
| WIDTH="33%" |
| ALIGN="left" |
| VALIGN="top" |
| >Customising Bugzilla</TD |
| ><TD |
| WIDTH="34%" |
| ALIGN="center" |
| VALIGN="top" |
| ><A |
| HREF="customization.html" |
| ACCESSKEY="U" |
| >Up</A |
| ></TD |
| ><TD |
| WIDTH="33%" |
| ALIGN="right" |
| VALIGN="top" |
| >Template Hooks</TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></BODY |
| ></HTML |
| > |