I took a look at the old Q2AStack theme mentioned here:
http://www.question2answer.org/qa/1382/do-we-have-any-beautiful-themes-for-q2a#a1436
and wound up making a new version here:
http://www.mediafire.com/download.php?ykalwn13milh6m3
In doing so, I made clear in my mind two things:
1) the q2a theme system is a great concept. Not sure if it's revolutionary or maybe I just live under a rock, but it's better than any theme system I've seen. It makes custom theme creation exceptionally easy, exemplified, I think, by the Q2AStack theme above.
2) there are still some areas where it could improve, as far as custom theme creating goes - great doesn't mean perfect, after all :)
So, maybe we can use this thread to kvetch about theming issues and maybe get some of them implemented in 1.5? Here's my list:
1. it would be really useful to have more information available to the various functions. For instance, when editing vote_buttons($post), I would like to know which sort of post this is. Is it a q-view or is it a q-list-item? There are many, many instances of this, and my workaround is just to add the information higher up in the theme hierarchy (so $post['class'] = 'q_item'), etc.
2. much of the data in qa_content is already html-ified when we get it. Is this really necessary? It would be much better, from a theme point of view if things like user handles, votes, titles, forms, etc. are left as data and processed by the theme. That would make it alot easier to fully customize the interface.
3. some of the functions make preprocessing difficult, and so require us to rewrite the theme ourselves, which of course is dangerous. Example:
if (isset($post['who']['points'])) {
$post['who']['points']['prefix']='('.$post['who']['points']['prefix'];
$post['who']['points']['suffix'].=')';
$this->output_split($post['who']['points'], $class.'-who-points');
}
What if I don't want parentheses around the points? Here's my answer:
if(isset($post['who']['points'])) {
$post['who']['title'] = @$post['who']['title'] . '</span>'.(isset($post['who']['title'])?' ':'').'<span class="'.$class.'-who-points-data">'.$post['who']['points']['data'];
unset($post['who']['points']);
}
Pretty ugly...
That's all for me... anyone else have any suggestions? Hopefully this is helpful for Gideon, rather than adding unnecessary burden.
Update: Here's a screenshot of the StackOverflow Theme - at least it shows how customizable Q2A is: