package EPrints::Plugin::Screen::EPMC::Import_EXIF; use EPrints::Plugin::Screen::EPMC; @ISA = ( 'EPrints::Plugin::Screen::EPMC' ); use strict; # Make the plug-in sub new { my( $class, %params ) = @_; my $self = $class->SUPER::new( %params ); $self->{actions} = [qw( enable disable configure )]; $self->{disable} = 0; # always enabled, even in lib/plugins $self->{package_name} = "Import_EXIF"; return $self; } =item $screen->action_enable( [ SKIP_RELOAD ] ) Enable the L for the current repository. If SKIP_RELOAD is true will not reload the repository configuration. =cut sub action_enable { my( $self, $skip_reload ) = @_; my $repo = $self->{repository}; $self->SUPER::action_enable( $skip_reload ); $self->reload_config if !$skip_reload; } =item $screen->action_disable( [ SKIP_RELOAD ] ) Disable the L for the current repository. If SKIP_RELOAD is true will not reload the repository configuration. =cut sub action_disable { my( $self, $skip_reload ) = @_; $self->SUPER::action_disable( $skip_reload ); $self->reload_config if !$skip_reload; } sub render_messages { my( $self ) = @_; my $repo = $self->{repository}; my $xml = $repo->xml; my $frag = $xml->create_document_fragment; my $exiftool = $repo->get_repository->get_conf( "exif_import", "exif_path" ); if ( -e $exiftool ) { } else { my $msg = $xml->create_document_fragment; $msg->appendChild($xml->create_text_node('exiftool not found on your system. You need to install exiftool and/or configure this plugin with the location of exiftool.')); $self->{processor}->add_message('message',$msg); $frag->appendChild( $repo->render_message( 'error', $msg ) ); } return $frag; } sub allow_configure { shift->can_be_viewed( @_ ) } sub action_configure { my( $self ) = @_; my $epm = $self->{processor}->{dataobj}; my $epmid = $epm->id; foreach my $file ($epm->installed_files) { my $filename = $file->value( "filename" ); next if $filename !~ m#^epm/$epmid/cfg/cfg\.d/(.*)#; my $url = $self->{repository}->current_url( host => 1 ); $url->query_form( screen => "Admin::Config::View::Perl", configfile => "cfg.d/exif_import.pl", ); $self->{repository}->redirect( $url ); exit( 0 ); } $self->{processor}->{screenid} = "Admin::EPM"; $self->{processor}->add_message( "error", $self->html_phrase( "missing" ) ); } 1;