I’ve gotten really good at begging for help in the last few months, so I thought it was high time for me to give something back to this amazing community

If this has already been demonstrated elsewhere or if any advanced users see a coding issue with what I’ve created, please let me know!
I’m currently building a site for a Lutheran church, and they wanted certain visual elements to be changeable depending on the current liturgical church season. My immediate thought was to build a dynamic, TV-based CSS switcher like the one described in the MODx Wiki (
http://wiki.modxcms.com/index.php/Dynamic_CSS_with_TVs). However, it was just slightly different from what I was wanting to accomplish. Unlike the tutorial, which alters the CSS on a page-by-page basis, I wanted a single drop-down menu that would change the stylesheet for the entire site. My solution uses a TV, a snippet and some quick-and-dirty API trickery to pull this off.
Here’s how it works:
1. Create a subdirectory in the /assets/ folder to store the CSS files you’ll be creating in Step 2. Honestly, it doesn’t really matter where you keep them, so long as they are all in the same folder (mine is located at /assets/css/seasons/).
2. Create your stylesheet files. Each file should have a unique name (mine are called advent.css, easter.css, christmas.css, etc.) and contain all of the elements that will change with the seasons (i.e., colors, background images, fonts, etc.) Your main CSS file should still contain all of your other styles; these are only the elements that will change.
3. In the <head> section of ALL of your site’s templates, after your main CSS file, add this line:
<link type="text/css" rel="stylesheet" href="assets/css/seasons/[!AddCss!]" media="screen" />
Adjust the path to match the one you created in Step 1.
4. Create a new Snippet called "AddCss" and paste in the following code:
<?php
$tvCss = $modx->getTemplateVarOutput(array("cssfiles"),$docid='1',$published=1);
echo $tvCss['cssfiles'];
?>
(One important detail: in Step 5, you’ll be associating this Snippet with a single page via a Template Variable (probably your homepage). If the page you use has a different ID than 1, change it in the "docid" code above.)
5. Create a new Template Variable called "cssfiles" and attach it ONLY to the template you want to change the stylesheets with (for me, it’s the homepage template). I’m pretty sure you only want to use this template for this one page -- duplicate it if you need to use the same template with other pages. Under "Input Type," choose "DropDown List Menu." Under "Input Option Values," add a list of items that corresponds with the names of the stylesheet files you created in Step 2 (i.e., Advent==advent.css||Easter==easter.css||Christmas==christmas.css).
That’s it! Now edit your homepage, and you should see the DropDown List. Choose the stylesheet you want to use from the list, hit save, and the styles from that stylesheet should now be applied sitewide. I’m fortunate in that one (and only one) of these "special" stylesheets will always be in use, but if you need them to be optional or want to load more than one, it wouldn’t be too difficult to slightly alter the Snippet or use a little PHx to pull off the desired effect.
Hope this comes in handy for someone else! I’m not quite good enough with PHP or the API to develop this into a full-fledged Snippet with parameters, but if anyone would like to take on that project, let me know.