EPrints Technical Mailing List Archive

Message: #08597


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

Re: [EP-tech] Antwort: RE: Short question about SSI in dynamic CGI output


CAUTION: This e-mail originated outside the University of Southampton.
Hi Jens,
I'm glad it helped a bit - even if it wasn't a solution. A few more musings below. I think there must be a way to make it work.
The key is possibly in the PerlOutputFilterHandler. 

In a cgi script, something like (entirely untested! Just thinking out loud...):

##############
use Apache2::Filter;
use Apache2::SSI;

my $r = $repo->get_request;

$r->add_output_filter(\&Apache2::SSI::handler);

# do stuff, return page
##############

If you get it working, and you wanted it to apply to all cgi requests, you could put something similar in a URL rewrite trigger that matches 'cgi'.
Make sure the rewrite trigger does not​ set a return code - so the normal handlers will then process the actual request.

Cheers,
John


From: jens.witzel@uzh.ch <jens.witzel@uzh.ch>
Sent: 07 May 2021 13:28
To: John Salter <J.Salter@leeds.ac.uk>
Cc: eprints-tech@ecs.soton.ac.uk <eprints-tech@ecs.soton.ac.uk>; jens.witzel@uzh.ch <jens.witzel@uzh.ch>
Subject: Antwort: RE: [EP-tech] Short question about SSI in dynamic CGI output
 

Dear John

thank you for your thoughts on the topic. You're right: after testing a lot it really looks like the request for a CGI script does not trigger the SSI handler. We've got to go the perl-based way rather than SSI.

Kind regards
Jens


--
Jens Witzel
Zentrale Informatik
Universität Zürich
Stampfenbachstrasse 73
CH-8006 Zürich

mail:  jens.witzel@uzh.ch
phone: +41 44 63 56777
http://www.zi.uzh.ch


Inactive hide details for "John Salter" ---20.04.2021 18:11:15---Hmmm, good question! If you print an SSI instruction directly "John Salter" ---20.04.2021 18:11:15---Hmmm, good question! If you print an SSI instruction directly from the CGI script, does that get con

Von: "John Salter" <J.Salter@leeds.ac.uk>
An: "eprints-tech@ecs.soton.ac.uk" <eprints-tech@ecs.soton.ac.uk>, "jens.witzel@uzh.ch" <jens.witzel@uzh.ch>
Datum: 20.04.2021 18:11
Betreff: RE: [EP-tech] Short question about SSI in dynamic CGI output





Hmmm, good question!

If you print an SSI instruction directly from the CGI script, does that get converted as expected? E.g. does
print '<!--#echo var="DATE_LOCAL" -->';
output a date, or '<!--#echo…'?

 
I haven't used SSIs alongside EPrints, but if the above doesn't interpret the SSI instruction my guess would be the PerlResponseHandler used for CGI scripts within EPrints::Apache::Rewrite module.

I find the diagram here:
https://perl.apache.org/docs/2.0/user/handlers/http.html#HTTP_Request_Cycle_Phases useful to try and work out what the difference might be between e.g. a static page+template being served compared to a cgi script.

The request for a CGI script might not trigger the SSI handler - but you may be able to add it to the stack, or a different phase (or even the output handlers).

 
The start of this page: https://wiki.eprints.org/w/How_to_enable_server_side_includes indicates that someone has been down this path before:
"If you want to add dynamic content to the template you should do this via a template part in cfg.d/dynamic_template.pl"

They possibly included a maintenance.ssi file using perl-based methods rather than SSI methods?
 
Cheers,
John
 
From: eprints-tech-bounces@ecs.soton.ac.uk [mailto:eprints-tech-bounces@ecs.soton.ac.uk] On Behalf Of jens.witzel--- via Eprints-tech
Sent:
 20 April 2021 16:06
To:
 eprints-tech@ecs.soton.ac.uk
Subject:
 [EP-tech] Short question about SSI in dynamic CGI output
 
CAUTION: This e-mail originated outside the University of Southampton.

Hi out there

maybe stupid. maybe simple, maybe offtopic, maybe not:


We found out, that Server Side Includes (SSI) inside phrase dynamic.xml or templates will not be interpreted by cgi-scripts like cgi/stats/report.
Scenario: We generate static code, push it into a simple textfile.ssi and try to include it in the template with
 <!--#include virtual="/maintenance.ssi" -->

So, in a nutshell: HowTo tell CGIs/Apache to use SSI after CGI has done? We thought, we tried out everything in Apache conf.
Any hint is appreciated #-)

Kind regards
Jens


--
Jens Witzel
Zentrale Informatik
Universität Zürich
Stampfenbachstrasse 73
CH-8006 Zürich

mail:  
jens.witzel@uzh.ch
phone: +41 44 63 56777

http://www.zi.uzh.ch