Difference between revisions of "API:EPrints/Session"

From EPrints Documentation
Jump to: navigation, search
(Removing all content from page)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
<!-- Pod2Wiki=_preamble_
 
This page has been automatically generated from the EPrints source. Any wiki changes made between the 'Pod2Wiki=*' and 'End of Pod2Wiki' comments will be lost.
 
-->[[Category:API]]<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=head_name -->=NAME=
 
__TOC__
 
'''EPrints::Session''' - Single connection to the EPrints system
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=head_description -->=DESCRIPTION=
 
This module is not really a session. The name is out of date, buthard to change.
 
EPrints::Session represents a connection to the EPrints system. Itconnects to a single EPrints repository, and the database used bythat repository. Thus it has an associated EPrints::Database andEPrints::Repository object.
 
Each "session" has a "current language". If you are running in a multilingual mode, this is used by the HTML rendering functions tochoose what language to return text in.
 
The "session" object also knows about the current apache connection,if there is one, including the CGI parameters.
 
If the connection requires a username and password then it can also give access to the EPrints::DataObj::User object representing the user who iscausing this request.
 
The session object also provides many methods for creating XHTML results which can be returned via the web interface.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_new -->==new==
 
  
  $session = EPrints::Session-&gt;new( $mode, [$repository_id], [$noise], [$nocheckdb] )
 
 
Create a connection to an EPrints repository which provides access to the database and to the repository configuration.
 
This method can be called in two modes. Setting $mode to 0 means thisis a connection via a CGI web page. $repository_id is ignored, insteadthe value is taken from the "PerlSetVar EPrints_ArchiveID" option inthe apache configuration for the current directory.
 
If this is being called from a command line script, then $mode shouldbe 1, and $repository_id should be the ID of the repository we want toconnect to.
 
$mode :mode = 0    - We are online (CGI script)mode = 1    - We are offline (bin script) $repository_id is repository_idmode = 2    - We are online, but don't create a CGI query (so we
 
don't consume the data).
 
$noise is the level of debugging output.0 - silent1 - quietish2 - noisy3 - debug all SQL statements4 - debug database connection
 
Under normal conditions use "0" for online and "1" for offline.
 
$nocheckdb - if this is set to 1 then a connection is made to thedatabase without checking that the tables exist.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_request -->==get_request==
 
 
  $request = $session-&gt;get_request;
 
 
Return the Apache request object (from mod_perl) or undefined if this isn't a CGI script.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_query -->==get_query==
 
 
  $query = $session-&gt;get_query;
 
 
Return the CGI.pm object describing the current HTTP query, or undefined if this isn't a CGI script.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_terminate -->==terminate==
 
 
  $session-&gt;terminate
 
 
Perform any cleaning up necessary, for example SQL cache tables whichare no longer needed.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=head_language_related_methods -->==Language Related Methods==
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_session_language -->===get_session_language===
 
 
  $langid = EPrints::Session::get_session_language( $repository, $request )
 
 
Given an repository object and a Apache (mod_perl) request object, thismethod decides what language the session should be.
 
First it looks at the HTTP cookie "eprints_lang", failing that itlooks at the prefered language of the request from the HTTP header,failing that it looks at the default language for the repository.
 
The language ID it returns is the highest on the list that the giveneprint repository actually supports.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_change_lang -->===change_lang===
 
 
  $session-&gt;change_lang( $newlangid )
 
 
Change the current language of the session. $newlangid should be avalid country code for the current repository.
 
An invalid code will cause eprints to terminate with an error.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_html_phrase -->===html_phrase===
 
 
  $xhtml_phrase = $session-&gt;html_phrase( $phraseid, %inserts )
 
 
Return an XHTML DOM object describing a phrase from the phrase files.
 
$phraseid is the id of the phrase to return. If the same ID appearsin both the repository-specific phrases file and the system phrases filethen the repository-specific one is used.
 
If the phrase contains &lt;ep:pin&gt; elements, then each one should havean entry in %inserts where the key is the "ref" of the pin and thevalue is an XHTML DOM object describing what the pin should be replaced with.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_phrase -->===phrase===
 
 
  $utf8_text = $session-&gt;phrase( $phraseid, %inserts )
 
 
Performs the same function as html_phrase, but returns plain text.
 
All HTML elements will be removed, &lt;br&gt; and &lt;p&gt; will be converted into breaks in the text. &lt;img&gt; tags will be replaced with their "alt" values.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_lang -->===get_lang===
 
 
  $language = $session-&gt;get_lang
 
 
Return the EPrints::Language object for this sessions current language.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_langid -->===get_langid===
 
 
  $langid = $session-&gt;get_langid
 
 
Return the ID code of the current language of this session.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_best_language -->===best_language===
 
 
  $value = EPrints::Session::best_language( $repository, $lang, %values )
 
 
$repository is the current repository. $lang is the prefered language.
 
%values contains keys which are language ids, and values which istext or phrases in those languages, all translations of the same thing.
 
This function returns one of the values from %values based on the following logic:
 
If possible, return the value for $lang.
 
Otherwise, if possible return the value for the default language ofthis repository.
 
Otherwise, if possible return the value for "en" (English).
 
Otherwise just return any one value.
 
This means that the view sees the best possible phrase.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_view_name -->===get_view_name===
 
 
  $viewname = $session-&gt;get_view_name( $dataset, $viewid )
 
 
Return a UTF8 encoded string containing the human readable nameof the /view/ section with the ID $viewid.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=head_accessor_methods -->==Accessor Methods==
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_database -->===get_database===
 
 
  $db = $session-&gt;get_database
 
 
Return the current EPrints::Database connection object.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_storage -->===get_storage===
 
 
  $store = $session-&gt;get_storage
 
 
Return the storage control object.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_repository -->===get_repository===
 
 
  $repository = $session-&gt;get_repository
 
 
Return the EPrints::Repository object associated with the Session.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_url -->===get_url===
 
 
  $url = $session-&gt;get_url( [ @OPTS ] [, $page] )
 
 
Utility method to get various URLs. See [[API:EPrints/URL|EPrints::URL]]. With no arguments returns the same as get_uri().
 
  # Return the current static path
 
  $session-&gt;get_url( path =&gt; "static" );
 
  # Return the current cgi path
 
  $session-&gt;get_url( path =&gt; "cgi" );
 
  # Return a full URL to the current cgi path
 
  $session-&gt;get_url( host =&gt; 1, path =&gt; "cgi" );
 
  # Return a full URL to the static path under HTTP
 
  $session-&gt;get_url( scheme =&gt; "http", host =&gt; 1, path =&gt; "static" );
 
  # Return a full URL to the image 'foo.png'
 
  $session-&gt;get_url( host =&gt; 1, path =&gt; "images", "foo.png" );
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_uri -->===get_uri===
 
 
  $uri = $session-&gt;get_uri
 
 
Returns the URL of the current script. Or "undef".
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_full_url -->===get_full_url===
 
 
  $uri = $session-&gt;get_full_url
 
 
Returns the URL of the current script plus the CGI params.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_noise -->===get_noise===
 
 
  $noise_level = $session-&gt;get_noise
 
 
Return the noise level for the current session. See the explainationunder EPrints::Session-&gt;new()
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_online -->===get_online===
 
 
  $boolean = $session-&gt;get_online
 
 
Return true if this script is running via CGI, return false if we'reon the command line.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_secure -->===get_secure===
 
 
  $secure = $session-&gt;get_secure
 
 
Returns true if we're using HTTPS/SSL (checks get_online first).
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=head_dom_related_methods -->==DOM Related Methods==
 
These methods help build XML. Usually, but not always XHTML.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_make_element -->===make_element===
 
 
  $dom = $session-&gt;make_element( $element_name, %attribs )
 
 
Return a DOM element with name ename and the specified attributes.
 
eg. $session-&gt;make_element( "img", src =&gt; "/foo.gif", alt =&gt; "my pic" )
 
Will return the DOM object describing:
 
&lt;img src="/foo.gif" alt="my pic" /&gt;
 
Note that in the call we use "=&gt;" not "=".
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_make_indent -->===make_indent===
 
 
  $dom = $session-&gt;make_indent( $width )
 
 
Return a DOM object describing a C.R. and then $width spaces. Thisis used to make nice looking XML for things like the OAI interface.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_make_comment -->===make_comment===
 
 
  $dom = $session-&gt;make_comment( $text )
 
 
Return a DOM object describing a comment containing $text.
 
eg.
 
&lt;!-- this is a comment --&gt;
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_make_text -->===make_text===
 
 
  $DOM = $session-&gt;make_text( $text )
 
 
Return a DOM object containing the given text. $text should beUTF-8 encoded.
 
Characters will be treated as _text_ including &lt; &gt; etc.
 
eg.
 
$session-&gt;make_text( "This is &lt;b&gt; an example" );
 
Would return a DOM object representing the XML:
 
"This is &amp;lt;b&amp;gt; an example"
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_make_javascript -->===make_javascript===
 
 
  $DOM = $session-&gt;make_javascript( $code, %attribs )
 
 
Return a new DOM "script" element containing $code in javascript. %attribs willbe added to the script element, similar to make_element().
 
E.g.
 
  &lt;script type="text/javascript"&gt;
 
  // &lt;![CDATA[
 
  alert("Hello, World!");
 
  // ]]&gt;
 
  &lt;/script&gt;
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_make_doc_fragment -->===make_doc_fragment===
 
 
  $fragment = $session-&gt;make_doc_fragment
 
 
Return a new XML document fragment. This is an item which can haveXML elements added to it, but does not actually get rendered itself.
 
If appended to an element then it disappears and its children jointhe element at that point.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=head_xhtml_related_methods -->==XHTML Related Methods==
 
These methods help build XHTML.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_render_ruler -->===render_ruler===
 
 
  $ruler = $session-&gt;render_ruler
 
 
Return an HR.in ruler.xml
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_render_nbsp -->===render_nbsp===
 
 
  $nbsp = $session-&gt;render_nbsp
 
 
Return an XHTML &amp;nbsp; character.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_render_data_element -->===render_data_element===
 
 
  $xhtml = $session-&gt;render_data_element( $indent, $elementname, $value, [%opts] )
 
 
This is used to help render neat XML data. It returns a fragment containing an element of name $elementname containing the value$value, the element is indented by $indent spaces.
 
The %opts describe any extra attributes for the element
 
eg.$session-&gt;render_data_element( 4, "foo", "bar", class=&gt;"fred" )
 
would return a XML DOM object describing:
 
    &lt;foo class="fred"&gt;bar&lt;/foo&gt;
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_render_link -->===render_link===
 
 
  $xhtml = $session-&gt;render_link( $uri, [$target] )
 
 
Returns an HTML link to the given uri, with the optional $target ifit needs to point to a different frame or window.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_render_row -->===render_row===
 
 
  $table_row = $session-&gt;render_row( $key, @values );
 
 
Return the key and values in a DOM encoded HTML table row. eg.
 
&lt;tr&gt;&lt;th&gt;$key:&lt;/th&gt;&lt;td&gt;$value[0]&lt;/td&gt;&lt;td&gt;...&lt;/td&gt;&lt;/tr&gt;
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_render_language_name -->===render_language_name===
 
 
  $xhtml = $session-&gt;render_language_name( $langid ) Return a DOM object containing the description of the specified languagein the current default language, or failing that from languages.xml
 
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_render_type_name -->===render_type_name===
 
 
  $xhtml = $session-&gt;render_type_name( $type_set, $type )
 
 
Return a DOM object containing the description of the specified typein the type set. eg. "eprint", "article"
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_type_name -->===get_type_name===
 
 
  $string = $session-&gt;get_type_name( $type_set, $type )
 
 
As above, but return a utf-8 string. Used in &lt;option&gt; elements, forexample.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_render_name -->===render_name===
 
 
  $xhtml_name = $session-&gt;render_name( $name, [$familylast] )
 
 
$name is a ref. to a hash containing family, given etc.
 
Returns an XML DOM fragment with the name rendered in the mannerof the repository. Usually "John Smith".
 
If $familylast is set then the family and given parts are reversed, eg."Smith, John"
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_render_option_list -->===render_option_list===
 
 
  $xhtml_select = $session-&gt;render_option_list( %params )
 
 
This method renders an XHTML &lt;select&gt;. The options are complicatedand may change, so it's better not to use it.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_render_single_option -->===render_single_option===
 
 
  $option = $session-&gt;render_single_option( $key, $desc, $selected )
 
 
Used by render_option_list.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_render_hidden_field -->===render_hidden_field===
 
 
  $xhtml_hidden = $session-&gt;render_hidden_field( $name, $value )
 
 
Return the XHTML DOM describing an &lt;input&gt; element of type "hidden"and name and value as specified. eg.
 
&lt;input type="hidden" name="foo" value="bar" /&gt;
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_render_upload_field -->===render_upload_field===
 
 
  $xhtml_uploda = $session-&gt;render_upload_field( $name )
 
 
Render into XHTML DOM a file upload form button with the given name.
 
eg.&lt;input type="file" name="foo" /&gt;
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_render_action_buttons -->===render_action_buttons===
 
 
  $dom = $session-&gt;render_action_buttons( %buttons )
 
 
Returns a DOM object describing the set of buttons.
 
The keys of %buttons are the ids of the action that button will cause,the values are UTF-8 text that should appear on the button.
 
Two optional additional keys may be used:
 
_order =&gt; [ "action1", "action2" ]
 
will force the buttons to appear in a set order.
 
_class =&gt; "my_css_class"
 
will add a class attribute to the &lt;div&gt; containing the buttons to allow additional styling.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_render_internal_buttons -->===render_internal_buttons===
 
 
  $dom = $session-&gt;render_internal_buttons( %buttons )
 
 
As for render_action_buttons, but creates buttons for actions whichwill modify the state of the current form, not continue with whateverprocess the form is part of.
 
eg. the "More Spaces" button and the up and down arrows on multipletype fields.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_render_form -->===render_form===
 
 
  $dom = $session-&gt;render_form( $method, $dest )
 
 
Return a DOM object describing an HTML form element.
 
$method should be "get" or "post"
 
$dest is the target of the form. By default the current page.
 
eg.
 
$session-&gt;render_form( "GET", "http://example.com/cgi/foo" );
 
returns a DOM object representing:
 
&lt;form method="get" action="http://example.com/cgi/foo" accept-charset="utf-8" /&gt;
 
If $method is "post" then an addition attribute is set:enctype="multipart/form-data"
 
This just controls how the data is passed from the browser to theCGI library. You don't need to worry about it.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_render_subjects -->===render_subjects===
 
 
  $ul = $session-&gt;render_subjects( $subject_list, [$baseid], [$currentid], [$linkmode], [$sizes] )
 
 
Return as XHTML DOM a nested set of &lt;ul&gt; and &lt;li&gt; tags describingpart of a subject tree.
 
$subject_list is a array ref of subject ids to render.
 
$baseid is top top level node to render the tree from. If only a singlesubject is in subject_list, all subjects up to $baseid will still berendered. Default is the ROOT element.
 
If $currentid is set then the subject with that ID is rendered in&lt;strong&gt;
 
$linkmode can 0, 1, 2 or 3.
 
0. Don't link the subjects.
 
1. Links subjects to the URL which edits them in edit_subjects.
 
2. Links subjects to "subjectid.html" (where subjectid is the id of the subject)
 
3. Links the subjects to "subjectid/".  $sizes must be set. Only subjects with a size of more than one are linked.
 
4. Links the subjects to "../subjectid/".  $sizes must be set. Only subjects with a size of more than one are linked.
 
$sizes may be a ref. to hash mapping the subjectid's to the numberof items in that subject which will be rendered in brackets next toeach subject.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_render_error -->===render_error===
 
 
  $session-&gt;render_error( $error_text, $back_to, $back_to_text )
 
 
Renders an error page with the given error text. A link, with thetext $back_to_text, is offered, the destination of this is $back_to,which should take the user somewhere sensible.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_render_input_form -->===render_input_form===
 
 
  $dom = $session-&gt;render_input_form( %params )
 
 
Return a DOM object representing an entire input form.
 
%params contains the following options:
 
dataset: The EPrints::Dataset to which the form relates, if any.
 
fields: a reference to an array of EPrint::MetaField objects,which describe the fields to be added to the form.
 
values: a set of default values. A reference to a hash wherethe keys are ID's of fields, and the values are the defaultvalues for those fields.
 
show_help: if true, show the fieldhelp phrase for each input field.
 
show_name: if true, show the fieldname phrase for each input field.
 
buttons: a description of the buttons to appear at the bottomof the form. See render_action_buttons for details.
 
top_buttons: a description of the buttons to appear at the topof the form (optional).
 
default_action: the id of the action to be performed by default, ie. if the user pushes "return" in a text field.
 
dest: The URL of the target for this form. If not defined thenthe current URI is used.
 
type: if this form relates to a user or an eprint, the type ofeprint/user can effect what fields are flagged as required. Thisparam contains the ID of the eprint/user if any, and if relevant.
 
staff: if true, this form is being presented to repository staff (admin, or editor). This may change which fields are required.
 
hidden_fields: reference to a hash. The keys of which are CGI keysand the values are the values they are set to. This causes hiddenform elements to be set, so additional information can be passed.
 
object: The DataObj which this form is editing, if any.
 
comment: not yet used.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=head_methods_relating_to_the_current_xhtml_page -->==Methods relating to the current XHTML page==
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_write_static_page -->===write_static_page===
 
 
  $session-&gt;write_static_page( $filebase, $parts, [$page_id], [$wrote_files] )
 
 
Write an .html file plus a set of files describing the parts of thepage for use with the dynamic template option.
 
File base is the name of the page without the .html suffix.
 
parts is a reference to a hash containing DOM trees.
 
If $wrote_files is defined then any filenames written are logged in it as keys.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_prepare_page -->===prepare_page===
 
 
  $session-&gt;prepare_page( $parts, %options )
 
 
Create an XHTML page for this session.
 
$parts is a hash of XHTML elements to insert into the pins in thetemplate. Usually: title, page. Maybe pagetop and head.
 
If template is set then an alternate template file is used.
 
This function only builds the page it does not output it any way, seethe methods below for that.
 
Options include:
 
page_id=&gt;"id to put in body tag"template=&gt;"The template to use instead of default."
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_send_page -->===send_page===
 
 
  $session-&gt;send_page( %httpopts )
 
 
Send a web page out by HTTP. Only relevant if this is a CGI script.build_page must have been called first.
 
See send_http_header for an explanation of %httpopts
 
Dispose of the XML once it's sent out.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_page_to_file -->===page_to_file===
 
 
  $session-&gt;page_to_file( $filename, [$wrote_files] )
 
 
Write out the current webpage to the given filename.
 
build_page must have been called first.
 
Dispose of the XML once it's sent out.
 
If $wrote_files is set then keys are created in it for each filecreated.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_set_page -->===set_page===
 
 
  $session-&gt;set_page( $newhtml )
 
 
Erase the current page for this session, if any, and replace it withthe XML DOM structure described by $newhtml.
 
This page is what is output by page_to_file or send_page.
 
$newhtml is a normal DOM Element, not a document object.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_clone_for_me -->===clone_for_me===
 
 
  $copy_of_node = $session-&gt;clone_for_me( $node, [$deep] )
 
 
XML DOM items can only be added to the document which they belong to.
 
A EPrints::Session has it's own XML DOM DOcument.
 
This method copies an XML node from _any_ document. The copy belongsto this sessions document.
 
If $deep is set then the children, (and their children etc.), are copied too.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_redirect -->===redirect===
 
 
  $session-&gt;redirect( $url, [%opts] )
 
 
Redirects the browser to $url.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_not_found -->===not_found===
 
 
  $session-&gt;not_found( [ $message ] )
 
 
Send a 404 Not Found header. If $message is undef sets message to'Not Found' but does '''NOT''' print an error message, otherwisedefaults to the normal 404 Not Found type response.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_send_http_header -->===send_http_header===
 
 
  $session-&gt;send_http_header( %opts )
 
 
Send the HTTP header. Only makes sense if this is running as a CGI script.
 
Opts supported are:
 
content_type. Default value is "text/html; charset=UTF-8". This setsthe http content type header.
 
lang. If this is set then a cookie setting the language preferenceis set in the http header.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=head_input_methods -->==Input Methods==
 
These handle input from the user, browser and apache.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_param -->===param===
 
 
  $value or @values = $session-&gt;param( $name )
 
 
Passes through to CGI.pm param method.
 
$value = $session-&gt;param( $name ): returns the value of CGI parameter$name.
 
$value = $session-&gt;param( $name ): returns the value of CGI parameter$name.
 
@values = $session-&gt;param: returns an array of the names of all theCGI parameters in the current request.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_have_parameters -->===have_parameters===
 
 
  $bool = $session-&gt;have_parameters
 
 
Return true if the current script had any parameters (post or get)
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_current_user -->===current_user===
 
 
  $user = $session-&gt;current_user
 
 
Return the current EPrints::DataObj::User for this session.
 
Return undef if there isn't one.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_seen_form -->===seen_form===
 
 
  $boolean = $session-&gt;seen_form
 
 
Return true if the current request contains the values from aform generated by EPrints.
 
This is identified by a hidden field placed into forms named_seen with value "true".
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_internal_button_pressed -->===internal_button_pressed===
 
 
  $boolean = $session-&gt;internal_button_pressed( $buttonid )
 
 
Return true if a button has been pressed in a form which is intendedto reload the current page with some change.
 
Examples include the "more spaces" button on multiple fields, the "lookup" button on succeeds, etc.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_action_button -->===get_action_button===
 
 
  $action_id = $session-&gt;get_action_button
 
 
Return the ID of the eprint action button which has been pressed ina form, if there was one. The name of the button is "_action_" followed by the id.
 
This also handles the .x and .y inserted in image submit.
 
This is designed to get back the name of an action button createdby render_action_buttons.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_internal_button -->===get_internal_button===
 
 
  $button_id = $session-&gt;get_internal_button
 
 
Return the id of the internal button which has been pushed, or undef if one wasn't.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_client -->===client===
 
 
  $client = $session-&gt;client
 
 
Return a string representing the kind of browser that made the current request.
 
Options are GECKO, LYNX, MSIE4, MSIE5, MSIE6, ?.
 
GECKO covers mozilla and firefox.
 
? is what's returned if none of the others were matched.
 
These divisions are intended for modifying the way pages are renderednot logging what browser was used. Hence merging mozilla and firefox.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_http_status -->===get_http_status===
 
 
  $status = $session-&gt;get_http_status
 
 
Return the status of the current HTTP request.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=head_methods_related_to_plugins -->==Methods related to Plugins==
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_plugin -->===plugin===
 
 
  $plugin = $session-&gt;plugin( $pluginid )
 
 
Return the plugin with the given pluginid, in this repository or, failingthat, from the system level plugins.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_plugin_list -->===plugin_list===
 
 
  @plugin_ids  = $session-&gt;plugin_list( %restrictions )
 
 
Return either a list of all the plugins available to this repository orreturn a list of available plugins which can accept the given restrictions.
 
Restictions:
 
vary depending on the type of the plugin.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_get_plugins -->===get_plugins===
 
 
  @plugins = $session-&gt;get_plugins( [ $params, ] %restrictions )
 
 
Returns a list of plugin objects that conform to %restrictions (may be empty).
 
If $params is given uses that hash reference to initialise the plugins. Always passes this session to the plugin constructor method.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=head_other_methods -->==Other Methods==
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_microtime -->===microtime===
 
 
  $time = EPrints::Session::microtime();
 
 
This function is currently buggy so just returns the time in seconds.
 
Return the time of day in seconds, but to a precision of microseconds.
 
Accuracy depends on the operating system etc.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_mail_administrator -->===mail_administrator===
 
 
  $foo = $session-&gt;mail_administrator( $subjectid, $messageid, %inserts )
 
 
Sends a mail to the repository administrator with the given subject andmessage body.
 
$subjectid is the name of a phrase in the phrase file to usefor the subject.
 
$messageid is the name of a phrase in the phrase file to use as thebasis for the mail body.
 
%inserts is a hash. The keys are the pins in the messageid phrase andthe values the utf8 strings to replace the pins with.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=item_destroy -->===destroy===
 
 
  $session-&gt;DESTROY
 
 
Destructor. Don't call directly.
 
<!-- End of Pod2Wiki -->
 
<!-- Pod2Wiki=_postamble_ --><!-- End of Pod2Wiki -->
 

Latest revision as of 15:41, 12 August 2009