How to list pages and content in Perch CMS

Today, @foamcow on twitter was asking how to list snippets of pages on Perch. So I thought I would have a break and list how I did it – which may not be the best method, but it worked for me.

I had pages with perch content fields, with, for the reason of this example, we’ll call Heading a plain text field, Image (image field) and a Content (textarea).

Initially I though I was stuck, but the forums told me to list the pages I need based on the navigation functions, so in brief, here’s how I did it. Apologies for lack of syntax highlighting etc, will add that later!


< ?php // Let's get the list of pages according to the navigation first. // Restrict to the path we need, which is only pages in /projects/ // skip-template means we just get an array of the page data back. $navigation = perch_pages_navigation(array( 'from-path' => '/projects/',
'levels' => 1,
'skip-template' => true
));

// Now let's loop through the perch content in the project page template
foreach( $navigation as $item ) {

// Add Skip template so we can use the data
$opts = array(
'page' => $item['pagePath'], // This is where we use the data from the nav list to get each page in turn
'skip-template' => true
);

// Now get an array of data for each perch content area in the page template
// All using the same options array we just set using the nav pagePath
$data = perch_content_custom('Heading', $opts);
$desc = perch_content_custom('Content', $opts);
$images = perch_content_custom('Image', $opts);

?>
<article>
<!-- This bit was more complicated for me - print_r your own array to work out what array index you need. -->
<a href="< ?php echo $item['pagePath'];?>">
<img src="/perch/resources/< ?php echo $images[0]['image']['sizes']['w684h386c1']['path']; ?>" alt="" />
</a>

<h2><a href="< ?php echo $item['pagePath'];?>">< ?php echo $data[0]['text']; ?></a></h2>
<p>< ?php echo $desc[0]['text']; ?> <a href="< ?php echo $item['pagePath'];?>">More</a></p>

</article>

< ?php } // foreach ?>

And hopefully that should work – but if not it has the basic theory. You can flag items by adding another suppressed field to the project page template and then checking the value in the for loop, which I have done before, although there may be a more efficient way to do that.

Dear Jan Etherington, an open letter

Today the cycling community are rightly up in arms for one of the worst researched, offensive and completely untrue articles I have read in a long time. It was by you, Jan Etherington. For reference, this is what I am writing about: http://www.telegraph.co.uk/news/politics/9562836/Wed-just-grown-to-love-cyclists-and-then-Andrew-Mitchell-had-to-come-along.html

So, as you appear (from the article) to be lazy and need some help with facts, I thought I would clear some things up.

The “stoic girls” included Olympic Silver medallist Lizzie Armistead. Easily found on Google.

We don’t all run red lights. Try this for some decent journalism on the topic: http://www.guardian.co.uk/environment/bike-blog/2012/may/14/cycling-red-light-jumping-iam-survey. Yes, some cyclists do, but one thing that does make me angry as a cyclist is those on two wheels that DO run red lights.

You say I believe I am from a superior race? How have you possibly come to this confusion? I think it’s much more likely that you are sneering at cyclists from your stationary bus, car or taxi on the way to your job, which it seems you don’t spend too much effort on anyway. I’m sure somewhere I read journalists have some responsibility. Maybe this might help you http://assembly.coe.int/documents/adoptedtext/ta93/eres1003.htm, although I am not sure how official that document is.

You say cyclists believe YOU (who says that you hope you cause us to fall off, hence risking death) are a lesser mortal. On the evidence of the article, you are.

I also live on the Olympic cyclists route.  Did you bother to ask if any of the cafes would be happier with less business? I’m sure the Box Hill cafe appreciate the roaring trade helping fun the National Trust. I’m pretty sure they are happy. Even if you are not.

Here is an absolute fact – if I had no spatial awareness I would have been seriously injured a number of times. Most recently a month or so ago when a car over took me and swerved in front (a right hook, FYI), hitting me. Luckily I anticipated the incident and stopped before I was seriously hurt. Who had no spatial awareness in that incident I ask?

You say we never stop to enjoy the scenery. Well I regularly stop to enjoy scenery while riding and often take a photo too.

As for your method of crossing the road, I would seriously recommend you look back to your childhood (stop, look and listen) rather than “try to amble across the road”. I’m sure electric cars will stop you from ambling across the road. Or would that be the vehicle driver’s fault too?

You say this in your article:

I make it a rule always to say “Good morning” to these belting bikers. With any luck, it will take them by surprise so much that they’ll slow down, or better still, fall off.

Do I misread this as you actually admitting to attempted assault, or worse, actual bodily harm? I would happily let the police decide on this if you are unsure. It sounds quite threatening at least. By the way, I am extremely offended by it.

Regarding my lycra I never actually planned to wear any until I found how mor comforatble and how much it helps against the wind, quite logical reasons for my outfit I think. Same as I wear football boots for football, I wear nice padded shorts for cycling.

This has turned into a much longer letter than I imagined, so I am going to down my keyboard and relax for a bit.

Yours,

Matt

The Rufous Head Speed Calculator

My good friend Rufous has the amazing headspeed calulator, which is currently being rebuilt into JavaScript from PHP for me so that Rufous can use the calulator on his posterous blocg but I also saw it as a chance to build a smartphone app.  This is mainly a test of the embeddable version:

 

My Anywhere Working Tips

Since going freelance I have had the opportunity to work in all manner of places, from in small coffee shops to multi million pound agency premises.

During this time I have learn a lot about working from anywhere, so here are my top 5 tips. Hope they help you as much as they help me.

  1. Plan location times in advance. If you know that you have a long day ahead of you – find somewhere that won’t kick you out in the middle of a complex tax. Nothing worse than being 30 minutes from finishing a project and Starbucks closes in ten minutes. Use a natural break to move early and find an alternative.
  2. Keep a spare. Of EVERYTHING business critical. I have 2 Macs, my old one I could have sold, but I have kept it and it serves as a back up machine. If my day to day machine dies at 9pm, with a deadline to hit, it isn’t the end of the world.
  3. Use CVS/Back up everything. I use Git. In tandem with the last post, make sure that all your code is backed up, versioned and always safe. And commit every change. Even if it only serves to remind you how you did something in a month or three.
  4. Talk to people. There is far too much value in talking to people, learning from them and just generally relaxing from your focussed task fro a few minutes. You may find advice, opinion and driection from the most unlikely sources.
  5. Don’t work. Just because you can work remotely, doesn’t mean you always have to be on the clock. Set your own hours by all means, but if you spend all your time being available and ready to work, you’re not living your life. Remember, my favourite saying: “Work to live, don’t live to work.”

Now – I better get back to work! Or pop into my kitchen for a snack and a coffee. Life is good.

Exeter Trial 2012 – whoops

Mixed weekend at the Exeter Trial 2012.  After the first hill catching us out when we just didn’t have enough revs/power to keep going, we had a half decent run until Tillerton Steep when the bloody rough terrain resulted in jumping out of gear, and slight backwards slide before getting going again.

Simms was OK,got some distance up, but then this happened (52 seconds in for the hill and roll!):

Bump on my head but were both OK, and so was the car – managed to get another hill done before all hills were closed. It turns out a Marlin rolled too, but with more injuries and an air ambulance required. Both in that car were OK, couple broken bones but nothing too major!  Just goes to show what could have happened!

EDIT: Turns out it was a Parsons Special that rolled after us – Mark Chapman (in the comments) found these photos. A shorter, edited version of our accident is now on YouTube: