Difference between revisions of "Talk:API:EPrints"
(→API) |
(→rev. 3.) |
||
| Line 32: | Line 32: | ||
$list = $search->execute(); | $list = $search->execute(); | ||
| − | + | = rev. 3. = | |
| − | + | == repo == | |
$repo = EPrints->repository( "devel", noise=>1 ); | $repo = EPrints->repository( "devel", noise=>1 ); | ||
$repo = EPrints->repository_from_request( noise=>3 ); | $repo = EPrints->repository_from_request( noise=>3 ); | ||
| Line 40: | Line 40: | ||
$user = $repo->user( 23 ); | $user = $repo->user( 23 ); | ||
$user = $repo->user_by_username( "cjg" ); | $user = $repo->user_by_username( "cjg" ); | ||
| + | $user = $repo->user_by_email( 'cjg@ecs.soton.ac.uk' ); | ||
| + | == dataset == | ||
$user = $dataset->dataobj( 23 ); | $user = $dataset->dataobj( 23 ); | ||
$search = $dataset->prepare_search(); | $search = $dataset->prepare_search(); | ||
| + | == search == | ||
$list = $search->execute(); | $list = $search->execute(); | ||
| + | |||
| + | |||
Still needing API working out: dataobj,eprint,user,subject,file,document,search,list,xml,page | Still needing API working out: dataobj,eprint,user,subject,file,document,search,list,xml,page | ||
| + | |||
| + | == Current == | ||
| + | |||
| + | $string = EPrints::XML::to_string( $node, "utf-8", 1 ); #use this to convert DOM trees to string | ||
| + | |||
| + | $dom = EPrints::XML::parse_xml_string( $string ); | ||
| + | |||
| + | $dom = EPrints::XML::parse_xml( $file, $basepath, $no_expand ); | ||
| + | |||
| + | $boolean = is_dom( $node, @nodestrings ); | ||
| + | |||
| + | $newnode = EPrints::XML::clone_node( $node, $deep ); | ||
| + | |||
| + | EPrints::XML::write_xhtml_file( $node, $filename ); | ||
| + | |||
| + | $document = EPrints::XML::make_document(); | ||
| + | |||
| + | $dom = EPrints:XML::parse_url($url, $no_expand); | ||
| + | |||
| + | nherrits all methods from EPrints::DataObj. | ||
| + | |||
| + | # create a new document on $eprint | ||
| + | my $doc_data = { | ||
| + | _parent => $eprint, | ||
| + | eprintid => $eprint->get_id, | ||
| + | }; | ||
| + | my $doc_ds = $handle->get_dataset( 'document' ); | ||
| + | my $document = $doc_ds->create_object( $handle, $doc_data ); | ||
| + | |||
| + | # Add files to the document | ||
| + | $success = $doc->add_file( $file, $filename, [$preserve_path] ); | ||
| + | $success = $doc->upload( $filehandle, $filename [, $preserve_path [, $filesize ] ] ); | ||
| + | $success = $doc->upload_archive( $filehandle, $filename, $archive_format ); | ||
| + | $success = $doc->add_archive( $file, $archive_format ); | ||
| + | $success = $doc->add_directory( $directory ); | ||
| + | $success = $doc->upload_url( $url ); | ||
| + | |||
| + | # get an existing document | ||
| + | $document = $handle->get_document( $doc_id ); | ||
| + | # or | ||
| + | foreach my $doc ( $eprint->get_all_documents ) { ... } | ||
| + | |||
| + | # eprint to which this document belongs | ||
| + | $eprint = $doc->get_eprint; | ||
| + | |||
| + | # delete a document object *forever*: | ||
| + | $success = $doc->remove; | ||
| + | |||
| + | $url = $doc->get_url( [$file] ); | ||
| + | $path = $doc->local_path; | ||
| + | %files = $doc->files; | ||
| + | |||
| + | # delete a file | ||
| + | $success = $doc->remove_file( $filename ); | ||
| + | # delete all files | ||
| + | $success = $doc->remove_all_files; | ||
| + | |||
| + | # change the file which is used as the URL for the document. | ||
| + | $doc->set_main( $main_file ); | ||
| + | |||
| + | # icons and previews | ||
| + | $xhtml = $doc->render_icon_link( %opts ); | ||
| + | $xhtml = $doc->render_preview_link( %opts ); | ||
| + | |||
| + | |||
| + | $repository = $handle->get_repository; | ||
| + | |||
| + | # without a $handle available | ||
| + | $repository = EPrints->get_repository( $id ); | ||
| + | |||
| + | $id = $repository->get_id; | ||
| + | $dataset = $repository->get_dataset( $setname ); | ||
| + | |||
| + | $repository->log( $msg ); | ||
| + | |||
| + | $confitem = $repository->get_conf( $key, [@subkeys] ); | ||
| + | |||
| + | # calling subtroutines in the config | ||
| + | $boolean = $repository->can_call( @cmd_conf_path ); | ||
| + | $result = $repository->call( $cmd, @params ); | ||
| + | |||
| + | # calling external commands | ||
| + | $returncode = $repository->exec( $cmd_id, %map ); | ||
| + | |||
| + | $img_dom = $handle->make_element( "img", src => "/foo.gif", alt => "my pic" ); | ||
| + | |||
| + | $comment_dom = $handle->make_comment( $text ); | ||
| + | |||
| + | $text_dom = $handle->make_text( $text ); | ||
| + | |||
| + | $empty_frag = $handle->make_doc_fragment; | ||
| + | |||
| + | render_ruler | ||
| + | render_nbsp | ||
| + | render-link | ||
| + | render_name | ||
| + | $xhtml_hidden = $handle->render_hidden_field( $name, $value ) | ||
| + | [edit] $xhtml_input = $handle->render_input_field( %opts ) | ||
| + | [edit] $xhtml_input = $handle->render_noenter_input_field( %opts ) | ||
| + | render_form | ||
| + | |||
| + | $handle->prepare_page( { page=>$mypage, title=>$mytitle } ); | ||
| + | $handle->send_page(); | ||
Revision as of 10:22, 10 September 2009
I'm going to use this page to get my thoughts in order. Cjg 16:58, 2 September 2009 (BST)
Contents
Current 3.1 System
Session, Repository, DataSet, MetaField
API
Plan:
- RepositoryHandle (was Session)
- MetaFieldHandle
- DataSetHandle
- Repository, MetaField and DataSet still exist but are not part of the API.
$handle = EPrint->get_repository_handle() $dataset = $handle->get_dataset_handle() $field = $dataset->get_field( "foo" ) $search = $dataset->get_search()
OK. The problems:
- what to name the new modules
- if we should rename the old modules? s/DataSet/DataSetConfig/
- What methods to use
- What $foo variable name to conventially use to refer to this item.
revision 2
$repo = EPrints->repository_by_id( "devel" ); $dataset = $repo->dataset( "user" ); $user = $repo->user( 23 ); $user = $repo->user_by_username( "cjg" ); $user = $dataset->dataobj( 23 ); $search = $dataset->search(); $list = $search->execute();
rev. 3.
repo
$repo = EPrints->repository( "devel", noise=>1 ); $repo = EPrints->repository_from_request( noise=>3 ); $xml = $repo->xml(); $dataset = $repo->dataset( "user" ); $user = $repo->user( 23 ); $user = $repo->user_by_username( "cjg" ); $user = $repo->user_by_email( 'cjg@ecs.soton.ac.uk' );
dataset
$user = $dataset->dataobj( 23 ); $search = $dataset->prepare_search();
search
$list = $search->execute();
Still needing API working out: dataobj,eprint,user,subject,file,document,search,list,xml,page
Current
$string = EPrints::XML::to_string( $node, "utf-8", 1 ); #use this to convert DOM trees to string $dom = EPrints::XML::parse_xml_string( $string ); $dom = EPrints::XML::parse_xml( $file, $basepath, $no_expand ); $boolean = is_dom( $node, @nodestrings ); $newnode = EPrints::XML::clone_node( $node, $deep ); EPrints::XML::write_xhtml_file( $node, $filename ); $document = EPrints::XML::make_document(); $dom = EPrints:XML::parse_url($url, $no_expand);
nherrits all methods from EPrints::DataObj.
# create a new document on $eprint
my $doc_data = {
_parent => $eprint,
eprintid => $eprint->get_id,
};
my $doc_ds = $handle->get_dataset( 'document' );
my $document = $doc_ds->create_object( $handle, $doc_data );
# Add files to the document
$success = $doc->add_file( $file, $filename, [$preserve_path] );
$success = $doc->upload( $filehandle, $filename [, $preserve_path [, $filesize ] ] );
$success = $doc->upload_archive( $filehandle, $filename, $archive_format );
$success = $doc->add_archive( $file, $archive_format );
$success = $doc->add_directory( $directory );
$success = $doc->upload_url( $url );
# get an existing document
$document = $handle->get_document( $doc_id );
# or
foreach my $doc ( $eprint->get_all_documents ) { ... }
# eprint to which this document belongs
$eprint = $doc->get_eprint;
# delete a document object *forever*:
$success = $doc->remove;
$url = $doc->get_url( [$file] );
$path = $doc->local_path;
%files = $doc->files;
# delete a file
$success = $doc->remove_file( $filename );
# delete all files
$success = $doc->remove_all_files;
# change the file which is used as the URL for the document.
$doc->set_main( $main_file );
# icons and previews
$xhtml = $doc->render_icon_link( %opts );
$xhtml = $doc->render_preview_link( %opts );
$repository = $handle->get_repository; # without a $handle available $repository = EPrints->get_repository( $id ); $id = $repository->get_id; $dataset = $repository->get_dataset( $setname ); $repository->log( $msg ); $confitem = $repository->get_conf( $key, [@subkeys] ); # calling subtroutines in the config $boolean = $repository->can_call( @cmd_conf_path ); $result = $repository->call( $cmd, @params ); # calling external commands $returncode = $repository->exec( $cmd_id, %map );
$img_dom = $handle->make_element( "img", src => "/foo.gif", alt => "my pic" );
$comment_dom = $handle->make_comment( $text ); $text_dom = $handle->make_text( $text ); $empty_frag = $handle->make_doc_fragment;
render_ruler render_nbsp render-link render_name $xhtml_hidden = $handle->render_hidden_field( $name, $value ) [edit] $xhtml_input = $handle->render_input_field( %opts ) [edit] $xhtml_input = $handle->render_noenter_input_field( %opts ) render_form
$handle->prepare_page( { page=>$mypage, title=>$mytitle } );
$handle->send_page();