Member
Member
Joris   2010-06-15, 09:59
#1

Hello,

I would like to change the url scheme to use 'portfolios' instead of 'gallery', i.e. the gallery page should display at /portfolios and an album with folder name 'some-album' should display at /portfolios/some-album.

I have specified the following in the .htaccess:

RewriteRule ^portfolios/?$ index.php?p=gallery [L,QSA] RewriteRule ^portfolios/([A-Za-z0-9_\-]+)/?$ index.php?album=$1 [L,QSA]
This works as intended, until I turn on 'mod rewrite' under Options > General:
The gallery page displays fine at /portfolios, but when I try to view an album at /portfolios/some-album I get the following message:

Quote:[b]Zenphoto Error:[/b] the requested object was not found.
Album: portfolios
Image: some-album
Page:
Any help would be greatly appreciated!

Administrator
Administrator
acrylian   2010-06-15, 12:04
#2

This can't work. Just rename the "gallery" page of your theme to "portfolio" and you should be done. It is a so called "custom page", no need to change rewrite rules.

Since it is a custom page there needs also to be a /page in the url so you have /page/portfolio/ because otherwise Zenphoto thinks a top level album named /portfolio exists which does not.

Or you just make a toplevelalbum named portfolio and link to that directly.

Member
Member
Joris   2010-06-15, 16:58
#3

Thanks a lot!

That was not exactly the solution I was looking for — I really don't want the /page/ part — but it did lead me to this workaround:

I renamed album.php to customalbum.php, and .htaccess now reads the following:
`
RewriteRule ^portfolios/?$ index.php?p=portfolios [L,QSA]
RewriteRule ^portfolios/([A-Za-z0-9
-]+)/?$ index.php?p=custom-album&title=$1 [L,QSA]
. Then added this line to the top of custom_album.php: $_zp_current_album = new Album($_zp_gallery, $_GET['title']);`

Thanks again!

Administrator
Administrator
acrylian   2010-06-15, 17:13
#4

The /page part is needed so that Zenphoto is not confused. Of course if you can disable that via htaccess.
You should really do a sanitize($_GET['title']) for security.

Anyway, I still think it would be much easier to have a toplevel album "portfolio" to link to directly since then there would not be a /page (depends on your theme of course...)

Member
Member
Joris   2010-06-15, 17:27
#5

Ah, you're right about the top level album. I didn't fully understand from your first post. That's definitely a more elegant solution.

Thanks again.

PS I (wrongly?) assumed the sanitize_path in the Album constructor would have been sufficient for security.

Member
Member
Joris   2010-06-15, 17:34
#6

Donation on its way.

Administrator
Administrator
acrylian   2010-06-15, 18:45
#7

You are right, I forgot there is already a sanitize_path. Well better double than nothing..;-)

Thanks for the donation.

  
Powered By MyBB, © 2002-2026 MyBB Group.
Made with by Curves UI.