This was a simple but effective solution, using cck and views:
Create a header pics content type. Add fields for images, url, and show when select list.
Images I used image upload with cropping module, constrained to 400px wide by 100px high to fit in header block.
show when select list I populated with summer, winter, fall, Halloween, Christmas, Veteran s Day, etc.
url is optional.
In view, filter by type = header_pic and show_when = whatever you want displayed now
Need the Customfield PHP module addon for views, and add:
<?php
$temp = node_load($data->nid);
if ($data->node_data_field_header_pic_url_field_header_pic_url_url) {
echo <a href=" . $data->node_data_field_header_pic_url_field_header_pic_url_url
. " title=" . $data->node_data_field_header_pic_url_field_header_pic_url_title
. "><img src="/ . $temp->field_header_image[0][ filepath ] . " /></a> ;
}
else {
echo <img src="/ . $temp->field_header_image[0][ filepath ] . " /> ;
}
?>
Where the fields I ve noted correlate to your actual fields.
What this does is wrap the image with that url field only if the url field is populated.
Then set the view in a block display, and set that block in the header region. Depending on theme, you may need to hack the page.tpl.php a little to move that header block region into the real header area (but once you get in there it s easy to see what you need to do).
You can even make a page view of this same view to display all of your great header images at once on a page (/headerpics), with an edit link by each for easy manageability.
This will work if you just want seasonal images.