Textpattern Forum

You are not logged in. Register | Login | Help

#1 2009-04-19 18:04:14

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

smd_horizon: What's that coming over the hill...

If you’ve ever been troubled by the restrictions that TXP places on you for navigating next/prev articles, be confined no more.

There’s an antidote: smd_horizon

Features:

  • Ability to link to articles that are to be published in future; <txp:next/prev_title /> and <txp:link_to_next/prev> work beyond the existing Posted range
  • Detection of when you are about to “fall off the end” of a section or category, in either direction
  • Entire adjacent article contents available in the current article for your (mis)use so you can tease people with what’s coming next or use any article content as a link (use the article image to link to the next article; or custom field contents; or anything else you fancy: it’s your call)
  • Navigate seamlessly between many sections, categories or authors
  • Track URL parameters between articles and/or sections so you can maintain state

There are a tonne of examples in the plugin help, but if you can think of any more wacky uses for this please post your tags here. And, as ever, if things go your way (or don’t) feel free to let me know.

Up, up and awaaaaaaay…

Revision history
————————

All available versions and changes are listed here. Each entry indexes the relevant post(s) in the threads to learn about the features.

  • 19 Apr 09 | 0.1 | Initial release

Last edited by Bloke (2009-04-19 19:33:01)


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

Txp Builders – finely-crafted code, design and Txp

Offline

#2 2009-04-19 20:26:53

jm
Plugin Author
From: Missoula, MT
Registered: 2005-11-27
Posts: 1,746
Website

Re: smd_horizon: What's that coming over the hill...

Excellent work, Stef!

Offline

#3 2009-04-19 21:53:19

merz1
Member
From: Hamburg
Registered: 2006-05-04
Posts: 994
Website

Re: smd_horizon: What's that coming over the hill...

What I like most is the title. ‘Horizon’. I always knew that your plug-in menagerie is kind of esoteric. Again I will follow. Just to find out what funny usages the users will have to tell :)


Get all online mentions of Textpattern via OPML subscription: TXP Info Sources: Textpattern RSS feeds as dynamic OPML

Offline

#4 2009-04-19 22:13:40

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

Re: smd_horizon: What's that coming over the hill...

merz1 wrote:

What I like most is the title. ‘Horizon’.

I took a leaf out of wet’s book: why call a plugin by a tedious, factual name when something that encapsulates its functionality and adds an air of mystery does just as well :-) Hope you like the plugin as much as the name.

Last edited by Bloke (2009-04-19 22:14:00)


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

Txp Builders – finely-crafted code, design and Txp

Offline

#5 2009-04-20 01:10:24

mrdale
Moderator
From: Walla Walla
Registered: 2004-11-19
Posts: 2,066
Website

Re: smd_horizon: What's that coming over the hill...

Un-ba-freakin-leavable. previous/next as it should be.

I gave up on core prev/next giving me consistent/predictable/rational result altogether.

nice! very nice.

Offline

#6 2009-04-21 15:48:55

merz1
Member
From: Hamburg
Registered: 2006-05-04
Posts: 994
Website

Re: smd_horizon: What's that coming over the hill...

Hope you like the plugin as much as the name.

Have been awake all night to think about possible use cases.

Detection of when you are about to “fall off the end” of a section or category, in either direction

For this case I am using chh_if_data at the moment.

Entire adjacent article contents available in the current article…

Not from the next or previous article?

Navigate seamlessly between many sections, categories or authors

Do I get it right that I can navigate by article ID whatever section the article belongs to? No more section boundary?

If Yes this starts to get interesting.

Track URL parameters between articles and/or sections so you can maintain state

I have no idea what this means.


Get all online mentions of Textpattern via OPML subscription: TXP Info Sources: Textpattern RSS feeds as dynamic OPML

Offline

#7 2009-04-21 16:25:28

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

Re: smd_horizon: What's that coming over the hill...

merz1 wrote:

Entire adjacent article contents available in the current article… Not from the next or previous article?

No. Let’s say you are viewing an article, call it Article 4. If you wrap smd_prev and smd_next tags around your standard <txp:link_to_prev> and <txp:link_to_next> tags, then from this article you can “see” and use the entire contents of Article 3 and Article 5 — the ones either side of the current article. Thus, instead of a boring link using <txp:title /> you could use:

<txp:smd_next>
  <txp:link_to_next><txp:custom_field name="some_info" /></txp:link_to_next>
</txp:smd_next>

Or even the article image. Whatever is in the next (or previous) article is available for preview from the current article.

But of course the tags in this plugin go waaaay beyond that simple scenario ;-) For example, if your ‘next’ article is not yet published (future date) or even set with a status of hidden, you are permitted to “see” its contents and — in the case of future articles — link to them using the standard tags.

I am using chh_if_data at the moment.

That’s fine. The smd_if_end and smd_if_start are just convenience functions but they can be very useful (see the later examples in the help).

Do I get it right that I can navigate by article ID whatever section the article belongs to? No more section boundary?

Yes. If you use:

<txp:smd_next section="sec1, sec2, sec3">
   <txp:link_to_next>NEXT!</txp:link_to_next>
</txp:smd_next>

Then your standard link_to_next/prev tags just keep going until you run out of articles in all 3 sections. In addition, <txp:smd_if_end> and <txp:smd_if_start> can detect when you reach a section boundary and/or the complete end of all three sections.

Track URL parameters between articles and/or sections so you can maintain state

Meaning, if you have ?m=7&y=2009 on your URL line — because the current page is the result of clicking a month in a sidebar calendar for example — you can “copy” those values onto the end of the link to the next and previous pages. So your calendar does not “reset” to the current month when you go the next page, it remains showing the month your visitor chose.

And remember, everything works across section/category boundaries so you can offer some really crazy “taboo” navigation, like jumping from category to category when clicking ‘next article’.

Does that give you a bit more insight?

Last edited by Bloke (2009-04-21 16:26:48)


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

Txp Builders – finely-crafted code, design and Txp

Offline

#8 2009-04-21 18:46:12

merz1
Member
From: Hamburg
Registered: 2006-05-04
Posts: 994
Website

Re: smd_horizon: What's that coming over the hill...

Yep. Thanks a lot for the explanations.

I knew you would use the calendar example for the URL parameters :)

Can you comment on the performance this turbo charged navigation will eat compared to the core tags?

Edit / PS: Is there a way to integrate rss_auto_excerpt inside the <txp:link_to_next>...</txp:link_to_next> container or are only TXP article fields allowed?

Last edited by merz1 (2009-04-21 18:50:12)


Get all online mentions of Textpattern via OPML subscription: TXP Info Sources: Textpattern RSS feeds as dynamic OPML

Offline

#9 2009-04-21 20:57:17

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

Re: smd_horizon: What's that coming over the hill...

merz1 wrote:

Can you comment on the performance this turbo charged navigation will eat compared to the core tags?

One extra query per “side”. smd_next and smd_prev need one query each to “load” the content, then all the other tags function off that. Since you can only ever go one step at a time in either direction, that’s all it needs.

If you don’t use smd_next or smd_prev there are no extra queries, just a tiny few extra lines of stuff to make some quick decisions. You can use smd_link_to_next/prev, or the conditionals, without smd_prev/next and they’ll do some stuff over and above what is available with core tags. But the real power comes with smd_next/prev: the price you pay is a maximum of 2 queries. Your call if it’s worth it!

The code is surprisingly lean; “surprisingly” because its one of my plugins and I’m not renowned for making them small ;-)

Is there a way to integrate rss_auto_excerpt inside the <txp:link_to_next>...</txp:link_to_next>

In theory, yes. Any tag that blindly uses what is available in “this article” as its source of data will actually see the “next article” or “previous article” contents depending on which way you are looking. Tags/plugins that do their own queries will be unaffected by my containers. Which mode applies to rss_auto_excerpt I don’t know, but I suspect it uses “this article” because there’s no reason for it to look anywhere else. You might be in luck: try it and see what happens, then let us know!

To be honest, I hadn’t considered that, but it’s a potential extra bonus to be able to use other plugin tags to format stuff from adjacent articles as well. Things like rvm_substr should work to allow you to shorten adjacent article information (custom fields, etc).


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

Txp Builders – finely-crafted code, design and Txp

Offline

#10 2009-04-22 01:13:24

merz1
Member
From: Hamburg
Registered: 2006-05-04
Posts: 994
Website

Re: smd_horizon: What's that coming over the hill...

Any tag that blindly uses what is available in “this article” as its source of data

That’s really good news! I’ll sleep over it and give it a try. That might be a great solution to show a short trigger excerpt for the next and previous articles under an article. Example:

<txp:rss_auto_excerpt length="150" showlinkwithexcerpt="1" linktext="More &hellip;" ending="&hellip;" overrideexcerpt="1" striptags="1" linkwraptag="strong" excerptwraptag="p" />

In my case the only isue to solve is that I tweaked the rss_auto_excerpt code to not strip <h4> which I always use for a sub-headline. But an extra CSS class will help.


Get all online mentions of Textpattern via OPML subscription: TXP Info Sources: Textpattern RSS feeds as dynamic OPML

Offline

Board footer

Powered by FluxBB