Amazon Machine Tags Plugin for WordPress

The forthcoming API change requiring signed requests will effect this plugin. If you do not update the plugin then it will stop working on August 15th. Comments on this version are closed, please comment on the update page.

In this article

Introduction

I always wanted to implement one thing since I started the blog: a simple inclusion of Amazon items. I didn’t want to search through results that existing plugins provided. When I wrote about something like a book, I already used machine tags to identify the subject! So I found the inspiration to write my first real WordPress plugin: Amazon Machine Tags.

Here’s what it does:

  1. It identifies any tag in the machine (or triple) tag form book:isbn=1234567890 or amazon:asin=1234567890. That works with native tags from WordPress 2.3 and later, Bunny’s Technorati Tags, Jerome’s Keywords, or as inline text (see below).
  2. Then it gets the item information and a thumbnail image from the Amazon Web Services API. That’s the real thing including prices and such, no cheap RSS feed. 😉
  3. The item(s) are displayed in the sidebar or in a blog article with a link to the visitor’s best match (if the ip2country plugin is installed) or a default Amazon shop of your choice. See examples in the sidebar.

    The “best match” is based on the visitor’s location. If she is from one of the six countries where Amazon has shops, that locale is chosen. If he is from Europe, the preferred language is matched to either France, Germany, or UK, with UK as default. If it’s neither a locale nor Europe, amazon.com is the default. Based on your location, do you think that’s a reasonable approach?

    Note that some items, like books in any language other than English, are only available from certain locales, so a visitor from the UK might not see German books you recommend.

  4. If you are an Amazon Associate for that locale, your Associate ID is included automatically.

You can edit the server-side, semantic and valid XHTML output via XSLT, change the CSS, or translate the admin interface through .po files. Actually Amazon loads the XSLT file from your server and processes it on theirs, so you shouldn’t block HTTP access to the plugin directory, and localhost doesn’t work either.

Results can be cached for anything between one second and one hour, so you don’t need to worry even when you run an extremely popular blog.

The YUI Connection Manager is included to verify the Access Key in the admin interface via REST and unobtrusive AJAX.

I hope this little piece of software serves you well and you like it.

Installation

  1. Get the latest version of the plugin from the WordPress site.
  2. Upload the whole amazon-machine-tags folder into the /wp-content/plugins/ directory.
  3. Activate the plugin through the “Plugins” menu in WordPress.
  4. Get an Amazon Web Services Access Key.
  5. Create a wp-content/cache/ directory with permissions set to 755, or 777 if you create the directory as root user.
  6. Put <?php AMTAP::get_items(); ?> in your sidebar and start using machine tags.
  7. Edit amtap-blog.css if you like.
  8. If you want to use tags in a blog article, write [amtap book:isbn=1234567890] or [amtap amazon:asin=1234567890]. Thanks to paulinepauline for that idea.

Frequently Asked Questions

Does it work in the sidebar on Pages, too?

Posts have tags, pages don’t, so it doesn’t work on those by default. But there’s a plugin called tags4page that enables tags for pages. Works like a charm.

Is there a limit of how many items can be requested?

Yes, Amazon has a limit of 10 items per request. Since they are separate requests, you can use a maximum of 10 items in the content plus a maximum of 10 in the sidebar.

Would it be possible to cache the images?

Technically it wouldn’t be a problem, but the Amazon Web Services license explicitly forbids caching of images (see 5.1.10). Sorry.

I need to a larger thumbnail (medium), but can’t seem to find a place to edit the size of the image being requested.

The image size can be edited in the XSLT. The original result is a XML file that is transformed by Amazon using your local copy of amtap-html-sidebar.xsl and amtap-html-content.xsl, respectively. Replacing every occurance of .//aws:TinyImage with .//aws:MediumImage should do the trick.

You can view the original XML when you activate the “debug” option in the admin interface so that the request string is printed as a comment in the sidebar’s source code. XSLT is a very powerful tool, and there’s a lot more in the XML, for example customer reviews.

Are all options really required?

No. The only required field is the Amazon Web Services Access Key. You can leave the others, they are set to defaults then.

Changelog

  • 3.0 (2009-07-31): Added signed requests for the new Amazon authorization requirement. Updated the API version to 2009-07-01 (please note: if you use your own XSL files, you must update the version in the XML namespace URL). Updated links.
  • 2.0 (2008-07-18):
    1. Added fields for editing the sidebar headline, link target, and displaying rating stars.
    2. Added an error message if the plugin is run from a private IP address space like localhost.
    3. Changed priorities for price selection, they are now: LowestNewPrice, ListPrice, first offer, LowestUsedPrice.
    4. Added support for the display of an artist name.
    5. Added rating stars.
    6. Fixed EAN numbers with a dash.
    7. Fixed cutting of titles after a period.
    8. Changed CSS and XSL files. Take care when you edited those.
  • 1.1.3: Changed amtap-admin.css and amtap-admin.inc.php to make the admin interface look prettier with WordPress 2.5.
  • 1.1.2: Fixed a bug in amtap.php when there are no other tags but default tags.
  • 1.1.1: Fixed the sort order of inline items, a bug for returning an error message when the cache file is not writable, and added Amazon’s limit of 10 items per request.
  • 1.1.0: Fixed the display of inline tags on the home page. Improved regular expression for filtering inline tags.
  • 1.0.6: Fixed a bug introduced through the new default items function when there were no items to be displayed in the sidebar.
  • 1.0.5: Added an option for default items on every page. Changed amtap-html-sidebar.xsl to sort items in the order of the request.
  • 1.0.4: Bugfix for replacement of dollar characters in content. Also content items are now cached separately.
  • 1.0.3: Fixed the display of inline tags on category pages.
  • 1.0.2: Changed the plugin path from amtap to amazon-machine-tags for consistency with the file structure in the zipped file.
  • 1.0.1: Bugfix for native WordPress tags.

202 Responses to ‘Amazon Machine Tags Plugin for WordPress’

  1. Jeff Wendorff

    Well it seems I was only partially correct or wrong. Even though I am getting the asin from the same US site, it does not always give me the link. Some do and some don’t… Is it Amazon or me?

  2. Amazon Machine Tags Plugin for WordPress - WP Plugin Archive

    […] dem Amazon Machine Tags Plugin for WordPress von Martin Kliehm können auf einfache Weise Amazon Artikel inklusive Vorschaubildern in […]

  3. Melissa.Boyd

    Thanks so much for this plug-in!

    For those of you that only see the “text” for the machine tag in the post, make sure you are not copying and pasting from this web page into the “visual” html editor in WordPress. A very simple mistake… that had me confused for a while! LOL

  4. Andrew

    “Andrew did you get your similar issue resolved?”

    I tried everything suggested here, but never could get it working. I have given up on this plugin and deactivated it.

    Andrew

  5. Martin Kliehm

    Jeff, to find out whether it’s Amazon or you I’d recommend to turn on the debug mode and take a look at the XML that’s returned by Amazon. If there are error messages in there, you will know who’s fault it is. 😉

    Melissa, thank you so much for the hint. I needed to escape the brackets in my text to avoid them being replaced here. 🙂

  6. Larry

    Martin,

    First off, thank you for this plugin, it’s Amazing!

    The one question I have, is that it seems to display an average price for the item, taking into account all of the amazon stores. Is there a way for it just to show the actual Amazon price?

    Thanks…

    Larry

  7. Doug

    Will this plug in search the tags even in they are not formatted in the machine way.. for instance if a have a tag that says “samsung 1080p TV” will it bring back results for that search?

  8. Martin Kliehm

    Larry, in response to an earlier request the order in which a price appears is LowestNewPrice, ListPrice, first offer, LowestUsedPrice. That seems reasonable for most users, but if you need to display the ListPrice you can do it by changing the XSLT files.

    Doug, I’m afraid using all tags for search requests on Amazon would return a large number of useless products since not all tags are intended to be product names. I think the machine tag pattern is a useful filter for the requests.

  9. Matthias Pannek

    First thanks for this plugin =)

    Second, is there any way to use smaller pictures? TinyImage is too big for me?

    Thanks

  10. Fred

    Hi Martin,

    Great plugin – thanks for your work.
    Is there any way to increase the information pulled from AWS? I would like to be able to display the product details and product description in my post.

    Thanks

    Fred

  11. cabotine

    Hmm,
    I installed it with WordPress 2.7 and sadly it dont work out.
    I tried using this in a post but it is just shown as typed…

    [amtap book:isbn=3781513661]

    I validated my amazon key and the plugin is activated
    Does anyone know what can be wrong?
    Or is WordPress 2.7 just really not supported until now?
    Regards
    C.

  12. cabotine

    solved it…
    it was because it got formatted as [code] accidently…
    nice plugin…

    but it kind find any hint to include the editors review of a book
    It would be great if you can give us a hint how to change the xslt file…
    Thx.
    C.

  13. cabotine

    Hi,
    I tried to find the product description in here […] but actually I cant find it… any hints? Thanks alot

  14. et

    hi,

    got stuck with the plugin, giving me the message:

    No connection to Amazon Web Services. Please retry later.

    i’m quite sure that amazon won’t allow such a long downtime of it’s web service, so i’m wondering if i overead the part where it says that you’ll have to open specific ports for amazon on your server..?

    thanks!
    et

  15. et

    hi martin, can you help me with the

    No connection to Amazon Web Services.

    error? what connection rules/servers need to be allowed for the web services. please help. if i can’t get it running, i’ll switch to another plugin… thanks in advance! et

  16. 为你的affiliate商店建立一个wordpress博客 : 互联网营销

    […] Amazon Machine Tags: 这是一个免费的插件,通过ASIN号码添加amazon的产品到你的blog post中去,优点:使用简单方便。不过现在amazon新推出的深度链接工具也不错,我更喜欢amazon官方的工具,不过每个人习惯不同,或许这款插件更适合你。 […]

  17. Jeff

    I have had to delete the wp tagcloud from my website’s sidebar because the cloud lists every machine tag code. Any idea how to exclude amtap machine tags from the cloud while not excluding other tags?

  18. François

    Hello.

    The plugin worked perfectly (WP 2.5) and suddenly it doesn’t anymore.
    I get a message “Warning: filegetcontents() [function.file-get-contents]: URL file-access is disabled in the server configuration in [My site]/wp-content/plugins/amazon-machine-tags/amtap.php on line 336″, and another one about “no suitable wrapper” at the same line.
    When I go to the plugin configuration page and check the Amazon Web Services Access Key ID, it says “No connection to Amazon Web Services. Please retry later.”
    I checked the AWS page, and it works, I can see my Access Key ID.
    Any idea what’s happening?
    Thanks.

  19. Martin Kliehm

    @et: please try if wp-content/plugins/amazon-machine-tags/amtap-html-content.xsl is accessible in a browser or if it throws a 403 forbidden error. If that’s the case you probably need to adjust the permissions settings for the amazon-machine-tags folder.

    @François it seems like somebody changed the server configuration. The plugin has two ways to request the remote XML file from amazon, preferable with a cURL request, or if that fails, through file_get_contents. The latter method has been changed in PHP 6. So either something changed in the PHP configuration, or somebody updated to PHP 6. I think it’s still too early to support PHP 6, but I will keep support for the new function in mind. In the meantime, could you please check the PHP version on your server? Just create a PHP file with the line phpinfo().

    @Jeff, that’s an issue with the tag cloud plugin which should ignore machine tags as they are not meant for humans.

    @Fred, cabotine, you can play around with the ItemLookup options at AWS Zone. By default the plugin requests Images, Medium, Offers, Reviews. If you would like to get the product description, you need OfferFull or OfferSummary in addition. You can tweak those params in the plugin’s settings, but also you need to adjust the XSL files then.

  20. François

    Hello.

    I checked the PHP version, it’s 4.4.3.

    Any other reference you might need?

    It seems that the curl functions have been disabled, in the “disable function” I can see: curlclose, curlcopyhandle, curlerrno, curlerror, curlexec, curlgetinfo, curlinit, curlmultiaddhandle, curlmulticlose, curlmultiexec, curlmultigetcontent, curlmultiinforead, curlmultiinit, curlmultiremovehandle, curlmultiselect, curlsetoptarray, curlsetopt, curlversion, socketconnect, socketcreate, socketcreatepair, socketread, socketrecv, socketrecvfrom, socketsend, socketsendto, socketwrite, fsockopen, curlclose, curlcopyhandle, curlerrno, curlerror, curlexec, curlgetinfo, curlinit, curlmultiaddhandle, curlmulticlose, curlmultiexec, curlmultigetcontent, curlmultiinforead, curlmultiinit, curlmultiremovehandle, curlmultiselect, curlsetoptarray, curlsetopt, curlversion, socketconnect, socketcreate, socketcreatepair, socketread, socketrecv, socketrecvfrom, socketsend, socketsendto, socketwrite, fsockopen

    I have no idea whether this is recent or not, but I don’t think it is.

    So, what can I do to fix this?
    Thanks.

  21. cabotine

    Hi,
    I tried to find the ProductDescription and actually it is not available. Amazon.de-staff told me that aswell and asked me to use the aStore.
    🙁
    What a pity.
    Thank you for the plugin anyway

  22. et

    hi martin, thanks for the feedback. tried your hint on wp-content/plugins/amazon-machine-tags/amtap-html-content.xsl. can access it without a problem. any other idea? cheers, et

  23. Andrew Gray » A Brief Review of Wordpress at Westhost.com

    […] Amazon Machine Tags is for Amazon affiliates who want to list books and other merchandise and possibly make money that way. I have it installed but rarely use it. I noticed the prices it displays are much higher than the real prices at Amazon, so I went into my CSS styles and made the price information white text (invisible). […]

  24. Chielos

    Hi Martin,

    Great plugin, works perfectly. I also got the ip2country to work. Excellent!
    Maybe you have a hint for the following. I have a website with first lines of books. I don’t want the user to see the book details returned by Amazon, but only a gerenic text with a link to the book. Is there a way i can replace this text with a generic text like ‘click here for the book’ and keep the url to Amazon?

    Thanks!
    Chiel

  25. klecks

    Hi Martin,

    is it possible to change the standard language for some posts or pages?
    example: default i wrote in german language, and all books have to asked the german amazon. but some posts are in multiple language and i have the wish to present the book in this language.
    like this: amtap lang:es book:isbn=1234567890

    regards
    klecks

  26. Gerd

    Nachdem ich das Plugin monatelang problemlos im Einsatz hatte, funktioniert es jetzt bei mir über Nacht nicht mehr. In der Sidebar wird nur noch der unformatierte XML-Text angezeigt und in den posts nach sekundenlanger Wartezeit überhaupt nichts mehr. Da ich am Plugin nichts verändert habe und außer mir offenbar kein anderer das Problem hat, erwarte ich mir hier keine Hilfe dazu, wollte es aber mal gesagt haben. Ich werde mich jetzt wohl daranmachen müssen, die machine tags aus allen posts und pages manuell wieder herauszufischen. schade und ärgerlich.

  27. Dieter

    Hi Martin,

    great work. I love your Amazon Machine Tags Plugin. Thanks for it!

    However for speed ressons I like to reduce the number of requests.
    For that I copied the content of the amtap-blog.css in the style.css of my theme and deleted the content of echo for the amtap-blog.css at the end of amtap.php.

    It would be nice, if this could be set at the configuration page of a further version of the plugin similar to Search Hilite.

    Best regards,
    Dieter

  28. Chris

    Hi
    ich versteh nicht wie ich
    “Put in your sidebar and start using machine tags”,

    Muss ich den HTML Code mit dem Themeeditor in “r-sidebar” einfügen und kann ich dann den TAG als Text in die Sidebar einfügen?

    Ich habe ewig herumprobiert, kriegs aber nicht hin.
    Gruss

  29. Bryan

    Can you explain to me how I can feed a custom machine-tag set into the AMTAP::get_items() function for use in my template files (in a single post, not sidebar) without it returning just a string of the results, but instead actually returning the html based of the XSL template?

    I’m using AMTAP::get_items(array(‘amazon:isbn=123456789’), ‘content’); but it just returns a huge string of all the XML without any node tags or anything.

  30. magnus.de

    […] jeder Hinsicht klasse ist das Amazon Machine Tag Plugin. Damit lassen sich gezielt Daten zu einem bestimmten Buch in WordPress-Artikel einbinden, indem man […]

  31. dgoodchild

    Great plugin — almost perfect for my needs. I have a couple of questions: I’m trying to edit the .xsl file to add a <br /> after the image (so the title appears on a new line below). I assume I’m not going about this in the right way ? I’ve tried just adding text to test it between <p> tags, which displays ok. Though when I change the text, sometimes it refreshes, sometimes it doesn’t.

    Also, is it possible to code it, so the price text gets added to a custom_field?

    This would be handy, to enable search results which include other (non Amazon) results appear in price order.

  32. Martin Kliehm

    @dgoodchild, if you’d like the title to appear below the image, the easiest way would be changing the CSS of the image to display: block;.

    Regarding your second question: it is possible to combine multiple XML results in the XSLT transformation. I was thinking of implementing the contents of an XML from the European Central Bank where they provide daily updates on the exchange rate of euros, but if you want to do something similar you need to have some XSLT programming skills. In XSLT it’s fairly easy to sort results, but I’m not sure if it is still compliant with the Amazon license using the results for a price comparison.

  33. dgoodchild

    sorry to be dumb, but the amtap-blog.css already has display: block; as the default doesn’t it ?
    also, I wanted to add an extra image (the same one each time) after the product image. Is this a complex process to implement with xslt ?

    I take your point about the license issue regarding price. Along those lines though, would it be possible to fill the wordpress title field with the amazon title?

  34. dgoodchild

    just wondered if the plugin is going to be affected by the recent Amazon announcement re authentication? I received a mail from them:

    …renaming the Amazon Associates Web Service as the “Product Advertising API.” … In addition to the new name, signatures will be necessary to authenticate each call to the Product Advertising API. This requirement will be phased in between May 11 and August 15, 2009, and by August 15, 2009, all calls to the Product Advertising API must be authenticated or they will not be processed.

  35. David Buchan

    Fantastic work. Took a moment to get it running. Once I had my associates-id there it was fine. However, editing changes to XSLT don’t seem to work. Is there some caching I’m unaware of. I refreshed my browser cache.

  36. programmernovice

    Hello, the plugin doesn’t always work: it works on a post, but not on a category page. Is it possible to make it work on category page? Thanks.

  37. Martin Kliehm

    @dgoodchild, technically it would be possible to fill the blog title with the Amazon book title. Probably there’s a hook or filter a custom function could use to overwrite the default title. I’m just not convinced of the benefit of such an extension. I believe if you blog about books anyway the extra effort to manually edit the post title is minimal. 😉

    And yes, excellent observation: the forthcoming API change requiring authentication effects the plugin. But I’m aware of the August 15th deadline and will try to provide a revised version by July 15th, giving users sufficient time to update.

    @David, as the number of API requests is limited there are local cache files in wp-content/cache with names like amtap-aws-items-for-post-*.html. You can either delete those files manually (do not delete amtap-aws-key-verification.txt) or set the cache age in the plugin’s settings to one second for testing purposes.

    @programmernovice, that’s true. As category pages do not have any tags and inherit the tags from the newest post, it doesn’t make much sense to display any books on that page. But there’s an advanced option where you can enter machine tags of books that will show on every page, for example when you are the author.

  38. David Buchan

    Thanks for the cache info. I’ve set the age as 1 second and tried deleting files as needed. They are being re-created but it seems that changes in amtap-html-content.xsl are not flowing through. If, for testing purposes, I change class=”author” to class=”abcauthor” simply to create a change I can look for I still get class=”author” in the html after changing the cache age and/or deleting the cache file.

    I’ve tested with clearing by browser cache and across browsers (firefox and IE). Until I know what’s happening here and why the changes are flowing through immediately it’s difficult to adjust formatting.

  39. Dave C

    Hello, I’m using the Shortcode in the middle of a Content Page, yet it displays the Publisher, Author, And Price. I don’t want any of these to show. I’ve tried to edit the XSLT and broke the whole thing. Is this possible?

  40. Breanne

    I’m having the same difficulty as David Buchan with regards to the caching. In my case, I’m trying to replace the H2 used for the heading with an H5; I’ve made the changes to the xsl file, changed the caching time to 1 second, deleted the cache file and cleared browser caches to no avail — still getting those darn H2s 🙂

  41. Alex Gold

    Hey Martin – Hate to bug you, but I have a question. Posting an item on a blog seems easy enough, but do the postings on the sidebar rely on what specific blog entry is on the screen or is there a way to control which books show on the sidebar independently of which entry is currently showing?

    Also, how do you add them to the sidebar? I tried add adding “[amtap book:isbn=1590521358]” to the sidebar.php text (after the normal code), but that didn’t do anything. The entry ones are working great though.

    One more quickie. If the visitor navigates away from the initial page I linked to, will Amazon still give me referral credit if they purchase a different item? I know it usually does, but I figured it’s better to know than be wrong 😉

    Thanks for the help!

  42. Alex Gold

    On second thought, two more questions.

    I would like to modify the output of the plugin so that it writes as thus (hopefully it shows this as HTML instead of trying to parse it):

    Today’s “Book of the day”
    (Here would go the normal code output)

    I know I can edit style changes with the CSS files, but I don’t think that would be able to encompass this kind of change.

    Second, what do you mean by “machine code” in the directions? I think of binary code with that term, which I doubt you are referring it 😉

  43. Alex Gold

    Sorry for the third comment, but I see that it didn’t keep the HTML code in the previous comment. Here is is (replacing < and > with { and }):

    {fieldset style=”text-align:right;”}
    {legend}{b}Today’s “Book of the day”{/b}{/legend}
    (Here would go the normal code output)
    {/fieldset}

  44. Robertino

    Hello Martin,

    Thanks for this wonderful plugin. I’ve got a couple of lenghty questions for you.

    1. Create a wp-content/cache/ directory with permissions set to 755, or 777 if you create the directory as root user.

    Is it enough to change the following files and lines of code, to change the location of the cache folder? Or would it be better to make the cache path a new input box for an absolute path in amtap-admin.inc.php and after confirmation define AMTAP_CACHEPATH in this file instead of in amtap.php ?
    With a persistent default of ‘wp-content/cache/ as a relative path’. I want to create the ‘cache’ folder outside (at the same level as) my WordPress installation folder.

    File amtap.php line 54 :
    define( 'AMTAP_CACHEPATH', ABSPATH . 'wp-content/cache/' ); // Cache path

    File amtap-admin.in.php line 64 :
    <?php _e( 'Create a wp-content/cache/ directory with permissions set to 755, or 777 if you create the directory as root user.', 'amtap' ); ?>

    File readme.txt line 29 :
    1. Create a wp-content/cache/ directory with permissions set to 755, or 777 if you create the directory as root user.
    BTW, why are your installation steps all numbered 1 ? 🙂

    2.
    You can edit the server-side, semantic and valid XHTML output via XSLT, change the CSS, or translate the admin interface through .po files. Actually Amazon loads the XSLT file from your server and processes it on theirs, so you shouldn’t block HTTP access to the plugin directory, and localhost doesn’t work either.

    Would it be possible to have a new input box for a relative path to a “user-mods” folder in file amtap-admin.inc.php ?
    (In this user-mods folder there would also be ccs, and js folders and the 2 xsl files amtap-html-content.xsl and amtap-html-sidebar.xsl.)
    And if there is a relative path filled in, that the plugin will first look for any .css, .js, and .xsl files in the user-mods folder ?
    Failing that, it will use the relevant .css, .js, or .xsl file from the default distribution.
    So initially the user-mods folder will not even exist, and only the modified files should be in this folder. The new box with the path will be blank in the admin panel.
    But when entered in the admin panel, must exist.
    “user” folder with in it a copy of the “css”, and “languages” folders including the files, and the 2 .xsl files : amtap-html-content.xsl and amtap-html-sidebar.xsl ?

    TIA,
    Robert

  45. clynton

    I was a little confused by your instalation instructions. On #4, add something about where to enter the Amazon key. After I activated the plugin, I finally realized there was a link to adjust the settings for the plugin. Then I found the field asking for the key.

    Otherwise it worked like a charm! I have a music page where I can list my favorite tunes I run to and they look beautiful. Thanks!!

  46. Wolfgang

    Hi Martin,

    what about this API change requiring authentication update? Are you on it?

    thx
    Wolfgang

  47. Amy Hutton

    Can this plugin be used with the wp auto tagger plugin?

  48. Fred

    Is there an update for Amazon’s new authentication policy?

  49. Martin Kliehm

    @Wolfgang, @Fred: yes, I’m working on it. Sorry for the delay.

    @Amy, I don’t know that plugin. As long as it produces tags in the usual WordPress tag format the origin shouldn’t matter.

    As far as the other requests about XSLT, caching and new features are concerned: I’m considering a more flexible solution for the cache path, in particular for compatibility with WordPress MU. Also XSL transformations on your own server (with Amazon just delivering the raw XML) would be an option. Still this is of lower priority than the API update. In the meantime: if you don’t know XSLT or CSS, don’t touch it. 😉

  50. Fred

    Thanks Martin