perl-embperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Derrick Spell <derricksp...@cdmplus.com>
Subject Subroutine Inheritance
Date Tue, 24 May 2005 19:21:26 GMT
I want to set up a method accessed from the request object that will  
allow me the option to create a page title based on the path to the  
page.  What I was thinking was:

/base.epl
[! sub title { print OUT "Company"; } !]
[- $req = shift -]
<title>[- $req->title() -]</title>

/title.epl
[! sub title { print OUT " "; } !]

/foo/title.epl
[! sub title {
         my ($self) = @_;
         $self->SUPER::title();
         print OUT " : Products";
} !]

/foo/index.html
[! sub title {
         my ($self) = @_;
         $self->SUPER::title();
         print OUT " : Widget";
} !]

Then, visiting /foo/index.html would give you a page with the title  
"Company : Products : Widget".  As I went deeper in the directory  
tree, I could have more title.epl files, and thus a longer title.   
For instance, if I add:

/foo/bar/title.epl
[! sub title {
         my ($self) = @_;
         $self->SUPER::title();
         print OUT " : Downloads";
} !]

/foo/bar/index.html
[! sub title {
         my ($self) = @_;
         $self->SUPER::title();
         print OUT " : Widget";
} !

Then the page /foo/bar/index.html would have the title "Company :  
Products : Downloads : Widget".  I can get the inheritance between  
the /base.epl and whatever index.html page I have working fine.   
That's no problem.  The problem is getting the title.epl involved.  I  
want to use normal Embperl::Object file inheritance for title.epl  
files, but want it to be inbetween the base.epl and index.html in the  
heirarchy.

Is there a clever way to play with @ISA to accomplish this?  Or  
perhaps someone has a better idea for building titles?

-Derrick


Mime
View raw message