TXP: chh_related_articles

chh_related_articles is an enhanced version of txp:related_articles that can determine “relatedness” not just by comparing article categories, but also via keywords, authors, and/or custom fields.

TXP: chh_keywords

The chh_keywords plugin provides Txp tags for managing articles based on multiple lists of keywords, categories, or “tags.”

TXP: chh_if_data

This plugin may be used to determine whether some contained Txp tags output any data, allowing the conditional output of accompanying static markup, like a header or a “no articles found” message.

TXP: chh_title

chh_title is a title/breadcrumb generator with configurable element order and support for category/section titles and full category trees.

TXP: chh_article_custom

The chh_article_custom plugin is an enhanced replacement for txp:article_custom and txp:article, offering features like context-sensitive operation, support for multiple categories/sections, hierarchical category searching, and advanced date/time selection.

TXP: chh_flipflop

This is a plugin to enable style-swapping in list forms. Each time it is called, it alternately returns the text specified by its optional odd or even attributes—or “odd” and “even” by default.

TXP: chh_admin_tags

The chh_admin_tags plugin offers several quick links for “front-end” editing of article content, page templates, and style sheets.

Perl: todo.pl download manager

todo.pl takes a list of URIs and command directives from a TODO queue file and retrieves those files, resuming aborted downloads when possible.

Word of the day: abandonware

It seems I am a serial abandoner.

I build up my resolve to work on PHP projects over the course of years, then unleash it in a burst of new code. Of course, my natural distaste for the language eventually wins out and I run screaming from the computer, not to be seen again until I am all but forgotten.

Textpattern development speeds along too fast for a serial abandoner to keep up. I can quell my language hatred only long enough to accomplish what I need and then get the hell out, leaping back into the warm embrace of the Camel.

Still, this pattern gives a gift to those whose plugins have lapsed into incompatibility, whose emailed pleas go unread. Even as they damn me under their breaths, they spy a tiny spark in the darkness. It is a distant possibility that kindles dreams and wrenches hearts, a yearning journey through time and space, a bright and shining star called Hope.

The Plugin Diner is open, now with larger textportions

At last, all of the behind-the-scenes madness has led to the first round of new plugin releases, complete with every end-user’s nightmare: external libraries. That’s right, all of my article list plugins will now require a second download, the chh_article_lib plugin. Maintaining multiple sets of essentially the same code is something no self-respecting CPAN aficionado would ever do, so I packed up all the most-used bits into one additional plugin. The good news is this will allow all of my article list plugins to share features without much effort on my part. And as we know, Laziness is one of the three great virtues of progamming.

But back to the plugins. Today’s special is chh_keywords, which was never intended to to have anything to do with Technorati Tags. Of course, it’s very hard to describe the plugin without using the words “tag” or “tagging,” so my technoratiphobia may not be apparent.

Also on the menu is chh_article_custom version 1.10, returning to its roots as a complete replacement for both txp:article_custom and txp:article. There is a certain amount of dread in unleashing such a beast into the wild but also a goodly amount of satisfaction in knowing that when people complain about a strange behavior in chh_article, I can calmly suggest they should probably be using the chh_article_custom tag instead.

Remember that scene in the new King Kong where everyone is attacked by giant bugs? I keep looking behind me for fear that a large, gooey chh_article_custom flaw is about to eat my head.

I see Textpeople

It seems the code section has become little more than a Textpattern section. Finally emerging from my slumber, I decided to update chh_article_custom for 4.0.x Txp, setting off an unexpected chain of events.

The new work inspired site updates, which in turn required another plugin—a method for showing related articles that doesn’t suck. So once again I find myself wandering through the Txp codebase, a masochistic exercise. In spite of my fondness for Textile and the CMS itself, I have an intense loathing for the PHP language, a mild distaste for much of the Txp core methodology (or lack thereof), and an OCD nature that compells me to reformat other people’s code so that it looks, to my eyes, pretty.

The upshot of all this is a new chh_article_custom, the spin-off chh_flipflop plugin, some patches sent to the dev team, a brand-spanking-new chh_related_articles plugin, and half a dozen other new plugins, some of which will eventually find public releases.

Imagine what would happen if I liked PHP…

Who woulda thought? It figures.

PHPxref is an excellent tool for mapping PHP projects. It is, of course, written in Perl.

Practically extracted...not much to report.

Okay, so the Perl archives are gone. Look, here’s a Larry quote!

It’s easy to fall into the habit of choosing rigor over vigor. [...] We already have lots of computer languages with rigor, but not so many with vigor.

Larry Wall in <199909150039.RAA21137@kiev.wall.org>

Textpardon me?

Like a phoenix rising from Arizona, chh_article_custom has been reborn. Like all births, there was a bit of pain and some screaming, the occasional curse or hurled pillow. Yet in the end there was a beautiful shining entity that will no doubt, when least expected, throw up all over your best shirt.