Textpattern Forum

You are not logged in. Register | Login | Help

#251 2008-10-26 12:08:31

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 5,714
Website

Re: smd_gallery: super-flexible gallery generator

sirNemanjapro

You got mail :-)

EDIT: joebaich beat me to it. Oh well, you have two copies now!

spgriffee

I agree the mod_rewrite might become a little awkward over time.

when images are uploaded, articles with image titles, captions, category and image IDs are automatically generated.

Yes, that would sort you out. I don’t know of any plugin that can help in this regard at the moment as it is quite a specific requirement.

May I ask what your primary aim is of wanting each image to have its own URL? Is it so the URL can be e-mailed in a more human friendly (or direct linked) nature?

Just as another mod_rewrite aside, instead of having a section for each story, what if you were to put all the ‘stories’ in a section and have one ‘index’ article for the name of the story (e.g. site.com/stories/lp, site.com/stories/felb, etc). On each story article you have an smd_gallery call that generates the thumbnails based on the name of the article (attribute category="?title"). Your smd_gallery form/container is a modification to the idea in my post above that formats the image URL links like this:

site.com/stories/lp/name-of-pic-goes-here

mod_rewrite steps in the way and (behind the scenes) changes any URL in the ‘stories’ section to:

site.com/stories/lp/?pic=name-of-image-goes-here

In your article you employ the smd_if plugin to detect if the pic urlvar has been supplied and if it has, display the relevant picture/caption instead (perhaps use upm_image for this?), then the smd_gallery as usual to show the thumbs below it.

It cuts down your workload to:

  1. create image category
  2. upload pictures to new category (use fpx_image_import for multiple uploads at once)
  3. creat article with the same name as the image category, perhaps override it with a form
  4. use the same form for every article in the ‘stories’ section that does the smd_if/gallery stuff

Does that give you any further ideas or is it still too complicated to manage?

Last edited by Bloke (2008-10-26 14:59:05)


The smd plugin menagerie — for when you need one more gribble of power from Textpattern.

Txp Builders – finely-crafted code, design and Txp

Offline

#252 2008-10-29 02:17:22

curiouz
Member
Registered: 2006-06-20
Posts: 56

Re: smd_gallery: super-flexible gallery generator

Hi Bloke,

I’m trying to make a Slideshow2! gallery with captions. Every image needs to link to a shadowbox modalbox with a different individual article as inline content.

I got the captions to work, by setting the paramdelim to “|” and making the following combo:

combo="test|'{imagedef}': {caption:'{title}'}"

wich generates

'1.jpg': {caption:'bla'}, '2.jpg': {caption:'blabla'};

Now my problem is the links to the articles. I tried changing the combo to:

combo="test|'{imagedef}': {caption:'{title}', href:'{somecombo}'}"

but comma’s don’t work in combo’s.

I’ve tried changing the form to:

<div class="slideshow" id="show"><a href="{somecombo}" rel="shadowbox"><img src="<txp:site_url />images/{id#1}.jpg" alt="{alt#1}" /></a></div>

but ofcourse in “collate” mode the href is generated something like this: http://someurl.com/bla, bla2, bla3, bla4

Do you have any idea how to get this working?

Offline

#253 2008-10-29 09:14:44

spgriffee
Member
Registered: 2004-12-21
Posts: 38
Website

Re: smd_gallery: super-flexible gallery generator

Stef,

Bloke wrote:

May I ask what your primary aim is of wanting each image to have its own URL? Is it so the URL can be e-mailed in a more human friendly (or direct linked) nature?

That is correct. I would like each image to have its own URL so that a direct link to the image along with its associated information is possible. Also, I want this URL to be visible and accessible without the use of JavaScript.

Just as another mod_rewrite aside, instead of having a section for each story, what if you were to put all the ‘stories’ in a section and have one ‘index’ article for the name of the story (e.g. site.com/stories/lp, site.com/stories/felb, etc). On each story article you have an smd_gallery call that generates the thumbnails based on the name of the article (attribute category="?title"). Your smd_gallery form/container is a modification to the idea in my post above that formats the image URL links like this:

site.com/stories/lp/name-of-pic-goes-here

mod_rewrite steps in the way and (behind the scenes) changes any URL in the ‘stories’ section to:

site.com/stories/lp/?pic=name-of-image-goes-here

In your article you employ the smd_if plugin to detect if the pic urlvar has been supplied and if it has, display the relevant picture/caption instead (perhaps use upm_image for this?), then the smd_gallery as usual to show the thumbs below it.

This sounds very interesting. Let me see if I have it right:

1) With each image category I create and upload images to, I also create an article with the same name as the category which serves as the thumbnail index (let me call this ‘story-name’ for now). All these articles are set to a Stories section.
2) When a visitor goes to site.com/stories/story-name and clicks on a thumbnail, a mod_rewrite rule adds the pic variable to the clicked link.
3) In the article itself or in an article form which controls the display of this article, the presence of the pic URL variable in each thumbnail link is tested using the smd_if plugin, and if it is present, when the link is clicked the visitor is taken to site.com/stories/story-name/?pic=name-of-image which is a permanent URL for the particular image which is shown in the page with its caption and title without the use of JavaScript to generate the HTML.
4) The visitor can click on the image itself to be taken back to the index page, or on next and previous links to go to the next or previous image in the series, and maybe even have paging functionality so they can go to the 2nd page, last page, and so on.

I realize that #4 above may add to the trickyness, but overall I think this could work. A couple of things I’d want to think about would be:

A) Breaking other parts of the site with the .htaccess mod_rewrite rule, though I might by able to figure this out. Do you have any tips on how to write the rule itself?
B) Performance hit. Any idea how much slower would the site be with all the smd_gallery and mod_rewrite stuff going on in the background?

Does that give you any further ideas or is it still too complicated to manage?

It does give me more ideas and I’m going to try and see! Thank you Stef!!

Offline

#254 2008-10-31 01:49:56

mlarino
Member
Registered: 2007-06-29
Posts: 364

Re: smd_gallery: super-flexible gallery generator

man, this plugin is complicated, or at least I can figure it out…

I am trying to create a gallery of all the thumbnails in category “galeria” to be shown in a section.
But any smd tag I use just renders every full size image in that category.

I am trying to make those thumbanils link to the full size image using lightbox.
anyone can help?
thanks!

Offline

#255 2008-10-31 14:23:36

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 5,714
Website

Re: smd_gallery: super-flexible gallery generator

mlarino wrote:

man, this plugin is complicated, or at least I can figure it out…

I don’t do things by half :-)

But any smd tag I use just renders every full size image in that category.

OK, this is probably (I’m guessing) because you’re not using the plugin as a container or with the form attribute. Without those, it drops into a “default” mode which displays every full size image from the given category.

The 2nd half of Example 1 in the plugin help is what you need to do. I’m not sure which lightbox effect you are using (let’s assume the original lightbox):

<head>
  <script type="text/javascript" src="js/prototype.js"></script>
  <script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
  <script type="text/javascript" src="js/lightbox.js"></script>
  <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
</head>

Then add your gallery tag to a form, or somewhere in your default article for the desired section:

<txp:smd_gallery category="galleria">
<a rel="lightbox" href="{url}" alt="{alt}"
     title="A picture of {title}">
  <txp:thumbnail id="{id}" />
</a>
</txp:smd_gallery>

(sorry, ignore the width and height attributes on the anchor in Example 1: I still haven’t fixed that in the documentation)

That renders an anchor tag for every image in the galleria category, sets it to use lightbox to display, and inside each anchor puts the relevant thumbnail. Then you use CSS to style it all and lay it out, float it, however you wish.

Does that get you started? Give me a shout if you need any more info.


The smd plugin menagerie — for when you need one more gribble of power from Textpattern.

Txp Builders – finely-crafted code, design and Txp

Offline

#256 2008-10-31 15:04:35

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 5,714
Website

Re: smd_gallery: super-flexible gallery generator

spgriffee wrote:

This sounds very interesting. Let me see if I have it right: <snip>

Yes, you have it right :-)

The crucial parts are:

  1. the mod_rewrite adds the ?pic variable internally (behind the scenes) leaving the browser URL bar untouched, showing a nice, shiny permlink-looking URL to visitors. All javascript-free
  2. Your story-name article (or attached form thereof) does all the hard work decoding the hidden ?pic=whatever bit, fetching the image and displaying it
  3. The next/prev, as you say, might be tricky. I’ve not thought it through because I don’t think there are tags that allow you to natively grab the next/prev image. However, through judicial use of the paging and limit="1" attributes, you might be able to coax smd_gallery into working out which image is next in line.

If the next/prev doesn’t work you might have to resort to some trickery. Off the top of my head we might be able to fashion some SQL query to get what you want (either directly in PHP or via smd_query?) or use some more plugins (e.g. wet_for_each_image or smd_each) to iterate over a dynamically-generated list of all images in the category until it finds the current pic; at that point it renders a link to the image either side. There’s probably a far better way of doing it than using smd_each; that’s like using a blunderbuss to win a round of golf: it’ll work if you point it at the opposition and shoot, but won’t win you any style points or reduce your handicap.

Breaking other parts of the site with the .htaccess mod_rewrite rule

The rule itself can target a specific section (which is why I suggested putting all this gubbins in its own section), thus not impacting anything else much… it will take a fraction of a second longer to read and process the rule, and decide whether to take action or not, but apache can comfortably handle it.

Do you have any tips on how to write the rule itself?

Not without trying it, sorry. I’m no mod_rewrite guru but something along these lines might be a starting point:

RewriteRule /stories/(.*)/(.*) /stories/$1/?pic=$2

So in theory, any article in the stories section that has two parts after it separated by a slash is changed to point at the given story-name ($1: the first part) and has the 2nd part added as a URL variable. If you Google for mod_rewrite tutorials there’s usually an example that exactly matches the type of thing you’re trying to do which you can copy ‘n’ paste!

Performance hit.

The rewrite itself fires for every page request and thus takes a (tiny) fraction longer to determine whether to act on the page or not. But TXP is doing that anyway for every page so you’re unlikely to notice.

Every extra tag that does SQL stuff (and every client-side plugin) adds a performance hit so you will want to minimise the number of tags on your page, as normal when worrying about render speeds. Again, there are so many other tags that just one more won’t make much difference. You’ll only be calling one smd_gallery per page — one in the ‘true, I have found a ?pic variable’ case, or one in the ‘else’ part — and the good news about smd_if (despite its ugliness) is that all its processing is done after any SQL calls so it does not go back to the database for anything. For a simple one-var check you’d be hard pushed to be able to click the stopwatch accurately enough to detect the extra time it takes to check the existence of the variable. I think your site is safe ;-)

If you want any further clarification or ideas, feel free to post what you have working (or not…) and either me or someone with greater brain capacity will endeavour to help you out.


The smd plugin menagerie — for when you need one more gribble of power from Textpattern.

Txp Builders – finely-crafted code, design and Txp

Offline

#257 2008-10-31 15:15:11

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 5,714
Website

Re: smd_gallery: super-flexible gallery generator

curiouz wrote:

but comma’s don’t work in combo’s.

Have you tried setting delim to something other than comma; like delim="::" or delim="_,_"? It’ll mean going back to your smd_gallery tag and changing any comma-delimited options to something else but it might allow that deliciously complicated combo to be parsed correctly ;-)

If that doesn’t work, shout back and I’ll look into it deeper to try and replicate what you’re doing on my test site.

Last edited by Bloke (2008-10-31 15:16:46)


The smd plugin menagerie — for when you need one more gribble of power from Textpattern.

Txp Builders – finely-crafted code, design and Txp

Offline

#258 2008-10-31 15:59:01

mlarino
Member
Registered: 2007-06-29
Posts: 364

Re: smd_gallery: super-flexible gallery generator

Man! thanks!
Worked perfect!!
Great job with this plugin!

Offline

#259 2008-11-02 10:09:19

spgriffee
Member
Registered: 2004-12-21
Posts: 38
Website

Re: smd_gallery: super-flexible gallery generator

“There’s probably a far better way of doing it than using smd_each; that’s like using a blunderbuss to win a round of golf: it’ll work if you point it at the opposition and shoot, but won’t win you any style points or reduce your handicap.”

Laughing!

Thanks for your detailed and entertaining response, Stef!
I’m going to take a crack at this (doing my best to avoid blunderbusses) and will report here soonest.

Cheers!

Offline

#260 2008-11-05 22:21:43

progre55
Member
Registered: 2006-05-02
Posts: 641

Re: smd_gallery: super-flexible gallery generator

Bloke:

Hope all is well.

Not sure if it is out there (ok I am sure but have not found it) and I have tried several solutions with non really doing the trick in a clean manner. I want to take your plug in and integrate it into an automatic slideshow. Unlike slimbox (which I use on alot of my projects), I want the slideshow to run automatically.

Any and all insight you or the rest of the group may have would be appreciated.

progre55

Last edited by progre55 (2008-11-05 22:22:01)

Offline

Board footer

Powered by FluxBB