About
This changes thread icons to be the avatar of the thread starter. It applies to thread listings on forumdisplay, search results and subscribed threads in the UserCP.
Installation
Upload the cssrollup_digitalpoint_threadavatars.xml file to includes/xml (this is really only needed if you store CSS as files in the file system)
Install the product-dp_thread_avatars.xml product under AdminCP -> Plugins & Products -> Manage Products -> Add/Import Product
Notes
Icons are cropped (but never stretched) to be square for display.
Threads with no new posts have the avatar slightly greyed out.
Locked threads will have a lock image overlayed.
Soft-deleted threads will have a red X image overlayed.
If the user posted in the thread, they will see a mini version of their avatar overlayed.
If a thread is "hot", the shadow of the icon will change color.
ZERO SQL queries are added.
Overlay images are encoded as CSS data (no extra HTTP requests needed for images or the CSS files themselves).
If your site uses pre-defined avatars, they are not scaled down for use as the icon since vBulletin does not store the dimensions (instead, the upper/left potion is cropped for the icon).
Settings
You can disable the mini-avatars under AdminCP -> Settings -> Options -> Forum Display Options (forumdisplay) -> Highlight Threads in Which User Has Posted
You can disable the hot thread highlight under AdminCP -> Settings -> Options -> Forum Display Options (forumdisplay) -> Hot Threads Enabled
You can change the color of the hot thread shadow under AdminCP -> Styles & Templates -> Style Manager -> StyleVars -> dpta_shadow_hot_color
You can change the size of the avatar under AdminCP -> Styles & Templates -> Style Manager -> StyleVars -> threadbit_iconsize (since they are square, it keys only on width)
If your site uses pre-defined avatars, you should use the AdminCP -> Settings -> Options -> User Picture Options -> Site Uses Pre-Defined Avatars option
Screenshots
Advanced
If you want to add your own mini-icon overlays, you can utilize the $template_hook['thread_avatars'] variable to do so.
If you want to selectively disable thread avatars, you can set the $show['hide_thread_avatars'] to true. This would allow you to create a custom profile field for users and set the $show['hide_thread_avatars'] based on the user's setting. Alternately you could enable the addon for certain usergroups or just for specific styles.
Just one small problem. It doesn't seem to support pre-defined avatars. The members that use a pre-defined avatar from my selection, it doesn't show their avatar, and instead shows the "unknown.gif".
Just one small problem. It doesn't seem to support pre-defined avatars. The members that use a pre-defined avatar from my selection, it doesn't show their avatar, and instead shows the "unknown.gif".
Yeah... it was semi-intentional. The code to do it is actually in there, but the query to get the data is commented out.
If you look at the "forumdisplay_query" plug-in, at the end of both the lines, there is a part that is commented out. If you add those back to the uncommented part of the query, it should work.
I've been trying to figure out a way to determine if the site uses pre-defined avatars without adding an extra SQL query to figure it out.
I left all the other logic in there, just commented out the part that adds a JOIN to the existing query for now.
If it turns out there is nothing in options or the datastore that can be read to make the determination, I'll probably add it as a yes/no option you can set. I just didn't want to always add the extra overhead of an extra JOIN if it wasn't necessary (and I'd guess most sites don't use pre-defined avatars).
I went ahead and updated it to 1.01... the only change is there is an option for "Site Uses Pre-Defined Avatars" and internally it alters the SQL as necessary. If your site does not use pre-defined avatars, the 1.01 version will be of no use to you.