sneak preview

I was working on a wordpress install for friends of mine. Marieke Zijlstra and Ruerdtsje made the layout, I stuffed it in a template.

I had to learn a bit of css and jquery and brush up on photoshop.

pallieter small

We still have to add the sidebar slideshow and add some pictures for rotating header graphics, I’ll do that after it goes live, it was a short term. The css does not validate completely, fortunately there are hundreds of css experts that can iron out the glitches in the stylesheet.

Maybe I’ll dig into css some more later and fix it myself, it’s pretty basic stuff.

When the site is live I’ll add a link to it.

Posted in juust, wordpress | Tagged , | Leave a comment

using wordpress custom pages for service templates

I was reading a discussion elsewhere on a rest service plugin for wordpress. Problem seemed that wordpress kept rerouting all requests to index.php. Most wordpress installs use server modules for url rewriting, where .htaccess contains a rule that checks first if a file exists on the server that matches the request. If it doesn’t, wordpress handles it. Unless you write an extra .htaccess rule to direct requests to the service endpoint, you have to have all endpoint files present under the request name. That’s awkward.

using custom pages

You can solve that by masking your service as a page. WordPress tests if the file exists as ‘single’ (page or post), and if a page exists with that permalink, wordpress generates the page.

I can write custom templates for pages. That template can be any file, so it can also be the main request handler of the REST service.

If I place my request handler in the template directory with a remark

/* Template Name: XMLServices
  1. */

then wordpress adds it to the custom pages list, that I can use on the backend when I add a new page.

custom content-type headers

Services usually reply with json or xml data, and not with wordpress content pages. I need a custom file header.
black magic

No problem, if I leave get_header(); out of the page template, I can specifiy my own header and use an text/xml content type or vcard text/directory content type.

I made a small example by adding my twitter friends timeline as xml output to the blog menu, by placing a file xmlservices.php in the template directory :

/* Template Name: XMLServices
  1. */
  2.  
  3. $x = simplexml_load_file('http://www.juust.org/friends_timeline.xml');
  4. if($x) {
  5.  
  6. //make the XML-header :
  7. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
  8. header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
  9. header("Cache-Control: no-cache, must-revalidate" );
  10. header("Pragma: no-cache" );
  11. header("Content-type: text/xml");
  12.  
  13. //make some xml :
  14. $xml = "< ?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
  15. $xml .= "<rows>";
  16. $xml .= "<page>1</page>";
  17. $xml .= "<total>15</total>";
  18. foreach($x->status as $s) {
  19.  $xml .= "<row id='".$s->user->id."'>";
  20.  $xml .= "<cell>< ![CDATA[".$s->source."]]></cell>";  
  21.  $xml .= "<cell>< ![CDATA[".$s->text."]]></cell>";
  22.  //$xml .= "<cell>< ![CDATA[".$s->user->screen_name."]]></cell>";    
  23.  $xml .= "<cell>< ![CDATA[".$s->user->name."]]></cell>";  
  24.  $xml .= "<cell>< ![CDATA[".$s->user->screen_name."]]></cell>";  
  25.  $xml .= "<cell>< ![CDATA[".$s->user->followers_count."]]></cell>";  
  26.  $xml .= "</row>";  
  27. }
  28.  
  29. $xml .= "</rows>";
  30. echo $xml;
  31. } else {
  32. //no data, relocate to the blog index or something
  33. }

Then added a page services with xmlservices as template. I can make a whole tree of xml service pages, as long as I use my XMLServices template when I make the page. You can use both http-get-queries and http-post.

Adding a vCard

wordpress custom page You can also add your  vcard, if you work business to business that comes in very handy.

I picked Troy Wolf’s vcard class of the net, made a file vcard.php with vcard as Template Name and put it in the template directory.

/* Template Name: vcard
  1. */
  2.  
  3. //include the class file
  4. include('../../../classes/vcard.class.php');
  5. //here we go : add my personal data
  6. $vc = new vcard;
  7. $vc-&gt;display_name ='Juust';//….
  8. $vc-&gt;download();

I added a empty new page with ‘about’ as parent and vcard as custom template, published it and now anyone can download my vCard straight from the ‘about’ menu.

Posted in wordpress | Tagged , , | Leave a comment

mail crash

I havent responded to a set of emails and that bothers me. I lost a hard disk in a disk crash (end of april) with a number of backups of sites I was working on, and my mailbox. I have been too busy to try and recover it.

If people have the impression I forgot, don’t take it personal :)

Posted in juust | Leave a comment