Re: test_url query string and path

Bill Moseley <[email protected]>
Newsgroups gmane.comp.web.swish-e
Message-ID <[email protected]>
On Wed, Jun 07, 2006 at 01:35:46PM -0700, Jes Constantine wrote:
> 
> my current test_url subroutine is:
> 
> test_url => sub { $_[0]->path !~ 
> /(cms|staff|techstaff|groupnotes|search|webstat|usage|print=yes)$/ }

Won't work.


> 
> after reading http://swish-e.org/archive/2004-12/8647.html and 
> http://swish-e.com/archive/2005-08/9883.html
> I learned that my pages made for print (with print=yes in a query 
> string) weren't being ignored because I was looking for print=yes in the 
> path and not the query.

(Use CSS for printing).



> So will putting $_[0]->query =~ /print=yes/ in my test_url subroutine  
> return  0 for something like: 
> http://humaniststudies.org/enews/index.php?id=142&showAll=true&print=yes
> 
> If so, can someone help me with the syntax for adding to the subroutine? 
> (I'm a swish-e & perl beginner)

Here's one hint that might be helpful:

    test_url => sub {
        my $uri = shift;

        warn "Path is [", $uri->path, "]\n";

    }

The $uri variable is a URI object.  So typing "perldoc URI" will explain the
details.

Path is the path, not the query part:

$ perl -MURI -wle '$uri = URI->new("http://swish-e.com/some/path?print=yes"); print $uri->path; '
/some/path


You have a few options:

$ perl -MURI -wle '$uri = URI->new("http://swish-e.com/some/path?print=yes"); print $uri->query'
print=yes

$ perl -MURI -wle '$uri = URI->new("http://swish-e.com/some/path?print=yes&foo=bar"); print $uri->query'
print=yes&foo=bar

$ perl -MURI -wle '$uri = URI->new("http://swish-e.com/some/path?print=yes&foo=bar"); %param = $uri->query_form; print $param{print}'
yes


But using CSS for print is probably the best solution. ;)



-- 
Bill Moseley
[email protected]

Unsubscribe from or help with the swish-e list: 
   http://swish-e.org/Discussion/

Help with Swish-e:
   http://swish-e.org/current/docs
   [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.