Difference between revisions of "API EPrints::Session"

From EPrints Documentation
Jump to: navigation, search
(New page: <!-- 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. -...)
 
(Removing all content from page)
 
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=
 
−
'''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 L!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 16:30, 10 August 2009