EPrints Technical Mailing List Archive

Message: #05705


< Previous (by date) | Next (by date) > | < Previous (in thread) | Next (in thread) > | Messages - Most Recent First | Threads - Most Recent First

Re: [EP-tech] Adding user messages from CGI


I suppose it could actually be a screen plugin – I’m handling a return redirection from the ORCID API and I lifted some of my design etc. from Peter West’s Tier 2 API plugin, which uses a CGI script as the return page.

 

It’s not actually that many hoops as I already needed the repo, db and user objects for processing the response, so it’s only really a one-liner to add the message – I just broke it out more for clarity in the email.

 

I’ll consider the best approach though.

 

(the return redirect URI has to be pre-registered with ORCID, which may involve some hoop jumping to change from my current CGI address, but I could always just bounce the CGI landing page on to the screen plugin, with some validation).

 

Alan

 

 

From: eprints-tech-bounces@ecs.soton.ac.uk [mailto:eprints-tech-bounces@ecs.soton.ac.uk] On Behalf Of Adam Field
Sent: 16 May 2016 11:22
To: eprints-tech@ecs.soton.ac.uk
Subject: Re: [EP-tech] Adding user messages from CGI

 

Interesting.  I had thought it was easier than this, but a scan of the code shows that this is, indeed, what's happening.  It's used 'officially' only a couple of times, but the key example is when you take an edit lock from someone it shows them a message (see https://github.com/eprints/eprints/blob/33a7bb8a8b3f80ba02ddd6618eb4e7dc3209ec68/perl_lib/EPrints/Plugin/Screen/EPrint/TakeLock.pm#L72 )

 

I would, however, say that if you're having to jump through hoops like this, your approach may be wrong.  The screen plugin infrastructure is there to manage things like this.  What are you doing with the cgi script, and why can't it be a screen plugin?

 

 

 

Jisc

Adam Field
SHERPA services analyst developer

 

From: <eprints-tech-bounces@ecs.soton.ac.uk> on behalf of "Alan.Stiles" <alan.stiles@open.ac.uk>
Reply-To: "eprints-tech@ecs.soton.ac.uk" <eprints-tech@ecs.soton.ac.uk>
Date: Monday, 16 May 2016 10:37
To: "eprints-tech@ecs.soton.ac.uk" <eprints-tech@ecs.soton.ac.uk>
Subject: Re: [EP-tech] Adding user messages from CGI

 

 

However, as so often seems to happen, I think I've got an answer, assuming the user visiting the cgi is logged in:

 

my $repo = new EPrints::Session;

my $db = $repo->database;

my $current_user = $repo->current_user();

my $xml_dom_value = $current_user->render_value( "name" );  # render the user name as an example

 

$db->save_user_message($current_user->get_value( "userid" ),

"message",

$repo->html_phrase("html_phrase_id", ("pin_name"=>$xml_dom_value)));

 

 

I'll try and find somewhere useful on the Wiki to add it.

 

Cheers,

Alan

 

 

 

-----Original Message-----

Sent: 16 May 2016 10:14

Subject: Re: [EP-tech] Adding user messages from CGI

 

from cgi/logout:

 

$page->appendChild( $session->render_message(

    "message",

    $session->make_text( "Logout OK!" ) ) );

 

add_message works only in plugins, and it calls $session->render_message anyway.

 

Il 16/05/2016 10:58, Alan.Stiles ha scritto:

 

Any clue if there is a function to add a message to the message queue

from a cgi script?  I can use $self->{processor}->add_message() from

within a plugin but how do I do this without a '$self' ?

 

Cheers,

 

Alan

 

-- The Open University is incorporated by Royal Charter (RC 000391),

an exempt charity in England & Wales and a charity registered in

Scotland (SC 038302). The Open University is authorised and regulated

by the Financial Conduct Authority.

 

 

*** Options:

*** EPrints community wiki: http://wiki.eprints.org/

*** EPrints developers Forum: http://forum.eprints.org/

 

*** EPrints community wiki: http://wiki.eprints.org/

*** EPrints developers Forum: http://forum.eprints.org/

-- The Open University is incorporated by Royal Charter (RC 000391), an exempt charity in England & Wales and a charity registered in Scotland (SC 038302). The Open University is authorised and regulated by the Financial Conduct Authority.

 

*** EPrints community wiki: http://wiki.eprints.org/

*** EPrints developers Forum: http://forum.eprints.org/

 

 


Jisc is a registered charity (number 1149740) and a company limited by guarantee which is registered in England under Company No. 5747339, VAT No. GB 197 0632 86. Jisc’s registered office is: One Castlepark, Tower Hill, Bristol, BS2 0JA. T 0203 697 5800.

Jisc Services Limited is a wholly owned Jisc subsidiary and a company limited by guarantee which is registered in England under company number 2881024, VAT number GB 197 0632 86. The registered office is: One Castle Park, Tower Hill, Bristol BS2 0JA. T 0203 697 5800.