Difference between revisions of "API:EPrints/Utils"
Line 10: | Line 10: | ||
'''EPrints::Utils''' - Utility functions for EPrints. | '''EPrints::Utils''' - Utility functions for EPrints. | ||
− | <div style='background-color: # | + | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> |
<h4><span style='display:none'>User Comments</span></h4> | <h4><span style='display:none'>User Comments</span></h4> | ||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
Line 42: | Line 42: | ||
# returns "3kb" | # returns "3kb" | ||
− | <div style='background-color: # | + | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> |
<h4><span style='display:none'>User Comments</span></h4> | <h4><span style='display:none'>User Comments</span></h4> | ||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
Line 51: | Line 51: | ||
This package contains functions which don't belong anywhere else. | This package contains functions which don't belong anywhere else. | ||
− | <div style='background-color: # | + | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> |
<h4><span style='display:none'>User Comments</span></h4> | <h4><span style='display:none'>User Comments</span></h4> | ||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
Line 71: | Line 71: | ||
"honourific given family lineage" | "honourific given family lineage" | ||
− | <div style='background-color: # | + | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> |
<h4><span style='display:none'>User Comments</span></h4> | <h4><span style='display:none'>User Comments</span></h4> | ||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
Line 83: | Line 83: | ||
$init_tab and $sub_tab allow indenting on the first and subsequent lines respectively (see {{API:PodLink|file=Text/Wrap|package_name=Text::Wrap|section=|text=Text::Wrap}} for more information). | $init_tab and $sub_tab allow indenting on the first and subsequent lines respectively (see {{API:PodLink|file=Text/Wrap|package_name=Text::Wrap|section=|text=Text::Wrap}} for more information). | ||
− | <div style='background-color: # | + | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> |
<h4><span style='display:none'>User Comments</span></h4> | <h4><span style='display:none'>User Comments</span></h4> | ||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
Line 101: | Line 101: | ||
This is used to see if a complex data structure actually has any data in it. | This is used to see if a complex data structure actually has any data in it. | ||
− | <div style='background-color: # | + | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> |
<h4><span style='display:none'>User Comments</span></h4> | <h4><span style='display:none'>User Comments</span></h4> | ||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
Line 125: | Line 125: | ||
<a href="foo">bar</a> will be converted into "bar <foo>" unless ignore_a is set. | <a href="foo">bar</a> will be converted into "bar <foo>" unless ignore_a is set. | ||
− | <div style='background-color: # | + | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> |
<h4><span style='display:none'>User Comments</span></h4> | <h4><span style='display:none'>User Comments</span></h4> | ||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
Line 139: | Line 139: | ||
Returns the HTTP response object: use $response->is_success to check whether the copy succeeded. | Returns the HTTP response object: use $response->is_success to check whether the copy succeeded. | ||
− | <div style='background-color: # | + | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> |
<h4><span style='display:none'>User Comments</span></h4> | <h4><span style='display:none'>User Comments</span></h4> | ||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
Line 149: | Line 149: | ||
Escape the given $url, so that it can appear safely in HTML. | Escape the given $url, so that it can appear safely in HTML. | ||
− | <div style='background-color: # | + | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> |
<h4><span style='display:none'>User Comments</span></h4> | <h4><span style='display:none'>User Comments</span></h4> | ||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
Line 159: | Line 159: | ||
Take a value and escape it to be a legal filename to go in the /view/ section of the site. | Take a value and escape it to be a legal filename to go in the /view/ section of the site. | ||
− | <div style='background-color: # | + | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> |
<h4><span style='display:none'>User Comments</span></h4> | <h4><span style='display:none'>User Comments</span></h4> | ||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
Line 169: | Line 169: | ||
Unescape a string previously escaped with escape_filename(). | Unescape a string previously escaped with escape_filename(). | ||
− | <div style='background-color: # | + | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> |
<h4><span style='display:none'>User Comments</span></h4> | <h4><span style='display:none'>User Comments</span></h4> | ||
<!-- Edit below this comment --> | <!-- Edit below this comment --> | ||
Line 183: | Line 183: | ||
This is not internationalised, I don't think it needs to be. Let me know if this is a problem. support@eprints.org | This is not internationalised, I don't think it needs to be. Let me know if this is a problem. support@eprints.org | ||
− | <div style='background-color: # | + | <div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce; padding: 0em 1em 0em 1em; font-size: 80%; '> |
<h4><span style='display:none'>User Comments</span></h4> | <h4><span style='display:none'>User Comments</span></h4> | ||
<!-- Edit below this comment --> | <!-- Edit below this comment --> |
Revision as of 14:04, 24 August 2009
EPrints 3 Reference: Directory Structure - Metadata Fields - Repository Configuration - XML Config Files - XML Export Format - EPrints data structure - Core API - Data Objects
Latest Source Code (3.4, 3.3) | Revision Log | Before editing this page please read Pod2Wiki
NAME
EPrints::Utils - Utility functions for EPrints.
SYNOPSIS
$boolean = EPrints::Utils::is_set( $object ) # return true if an object/scalar/array has any data in it # copy the contents of the url to a file $response = EPrints::Utils::wget( $handle, "http://www.eprints.org/index.php", "temp_dir/my_file" ) if($response->is_sucess()){ do something...} $name = { given=>"Wendy", family=>"Hall", honourific=>"Dame" }; # return Dame Wendy Hall $string = EPrints::Utils::make_name_string( $name, 1 ); # return Dame Hall, Wendy $string = EPrints::Utils::make_name_string( $name, 0 ); # returns http://www.eprints.org?var=%3Cfoo%3E $string = EPrints::Utils::url_escape( "http://www.eprints.org?var=<foo>" ); $esc_string = EPrints::Utils::escape_filename( $string ); $string = EPrints::Utils::unescape_filename( $esc_string ); $filesize_text = EPrints::Utils::human_filesize( 3300 ); # returns "3kb"
DESCRIPTION
This package contains functions which don't belong anywhere else.
$string = EPrints::Utils::make_name_string( $name, [$familylast] )
Return a string containing the name described in the hash reference $name.
The keys of the hash are one or more of given, family, honourific and lineage. The values are utf-8 strings.
Normally the result will be:
"family lineage, honourific given"
but if $familylast is true then it will be:
"honourific given family lineage"
$str = EPrints::Utils::wrap_text( $text, [$width], [$init_tab], [$sub_tab] )
Wrap $text to be at most $width (or 80 if undefined) characters per line. As a special case $width may be console, in which case the width used is the current console width (Term::ReadKey).
$init_tab and $sub_tab allow indenting on the first and subsequent lines respectively (see Text::Wrap for more information).
$boolean = EPrints::Utils::is_set( $r )
Recursive function.
Return false if $r is not set.
If $r is a scalar then returns true if it is not an empty string.
For arrays and hashes return true if at least one value of them is_set().
This is used to see if a complex data structure actually has any data in it.
$string = EPrints::Utils::tree_to_utf8( $tree, $width, [$pre], [$whitespace_before], [$ignore_a] )
Convert a XML DOM tree to a utf-8 encoded string.
If $width is set then word-wrap at that many characters.
XHTML elements are removed with the following exceptions:
<br /> is converted to a newline.
<p>...</p> will have a blank line above and below.
<img /> will be replaced with the content of the alt attribute.
<hr /> will, if a width was specified, insert a line of dashes.
<a href="foo">bar</a> will be converted into "bar <foo>" unless ignore_a is set.
$response = EPrints::Utils::wget( $handle, $source, $target )
Copy $source file or URL to $target file without alteration.
Will fail if $source is a "file:" and "enable_file_imports" is false or if $source is any other scheme and "enable_web_imports" is false.
Returns the HTTP response object: use $response->is_success to check whether the copy succeeded.
$string = EPrints::Utils::url_escape( $url )
Escape the given $url, so that it can appear safely in HTML.
$esc_string = EPrints::Utils::escape_filename( $string )
Take a value and escape it to be a legal filename to go in the /view/ section of the site.
$string = EPrints::Utils::unescape_filename( $esc_string )
Unescape a string previously escaped with escape_filename().
$filesize_text = EPrints::Utils::human_filesize( $size_in_bytes )
Return a human readable version of a filesize. If 0-4095b then show as bytes, if 4-4095Kb show as Kb otherwise show as Mb.
eg. Input of 5234 gives "5Kb", input of 3234 gives "3234b".
This is not internationalised, I don't think it needs to be. Let me know if this is a problem. support@eprints.org