wacnstac |
10-07-2011 08:50 AM |
I ended up modifying the get_avatar function with the following so I could pass in a user's vb id and get it to work correctly:
PHP Code:
function get_post_avatar($u, $size = '96', $default = '', $alt = false ) { global $vb; global $firephp; /* if (!is_numeric($u->user_id)) { return; } */ if (!is_numeric($u['userid'])) { return; }
/* $user = fetch_userinfo($u->user_id); */ $user = fetch_userinfo($u['userid']);
if ($avatar = $vb->db->query_first("SELECT dateline, width, height FROM " . TABLE_PREFIX . "customavatar WHERE userid=" . intval($user['userid']))) { $safe_alt = esc_attr($user['username']);
// using a custom avatar if ($vb->options['usefileavatar']) { $user['avatarurl'] = $vb->options['avatarurl'] . '/avatar' . $user['userid'] . '_' . $user['avatarrevision'] . '.gif'; }
else { $user['avatarurl'] = $vb->options['bburl'] . '/image.php?' . $vb->session->vars['sessionurl'] . 'u=' . $user['userid'] . "&dateline=$avatar[dateline]"; }
$default = $user['avatarurl'];
$user['avatarurl'] = "<a class='vbridge_avatar_link' href='" . $vb->options['bburl'] . "/member.php?u={$user['userid']}'><img alt='{$safe_alt}' src='{$user[avatarurl]}' class='avatar avatar-{$size} photo avatar-default' width='{$size}' height='{$size}' border='0'/></a>"; }
/* return apply_filters('get_avatar', $user['geturl'], $u, $size, $default, $user['username']); */ return ($user['avatarurl']); }
I found out later that this caused an error in the word press backend when editing comments. I restored the get_avatar function to the old code to fix this, and renamed by new function. Two questions.
1. It sounds like I should be able to use the same function for both if I can figure out how to create a user object. Can you give me a little tutorial on how to do that?
2. How is the get_avatar function called in the WP commenting backend? I don't really see it in the code and avatars are not being associated with the comments in the backend.
3. I lied, one more.... I would also like to display the avatar of each user who comments on a post as in this page:
http://www.michigan-sportsman.com/ms...an-youth-hunt/
But I don't know what to pass from this template function to make that happen. You can see my attempts at trying to get a comment author which have failed.
PHP Code:
class thesis_comment_meta extends thesis_comment { function build($comment) { global $thesis_design; $this->meta = $thesis_design->comments['comments']['options']['meta'];
if (is_array($this->meta)) { foreach ($this->meta as $element_name => $element) if ($element['show']) $output .= call_user_func(array($this, $element_name), $comment) . "\n"; }
thesis_hook_before_comment_meta(); if ($output) echo $output; thesis_hook_after_comment_meta(); }
function author($comment) { return "<span class=\"comment_author\">" . get_comment_author_link() . "</span>"; }
function avatar($comment) { global $vb; global $firephp;
$username = $comment['comment_author']; $firephp->log($comment,'Comment'); if (is_object($vb)) { $vb_user_record = $vb->db->query_first("SELECT * from " . TABLE_PREFIX . "user where username = '" . $vb->db->escape_string($username) . "'"); } $vb_userid = $vb_user_record["userid"];
$avatar = get_post_avatar($vb_user_record); // $avatar = get_avatar(get_comment_author_email(), $this->meta['avatar']['options']['size'], ''); $author_url = get_comment_author_url(); $avatar_output = (empty($author_url) || $author_url == 'http://') ? $avatar : "<a href=\"$author_url\" rel=\"nofollow\">$avatar</a>"; return '<span class="avatar">' . apply_filters('thesis_avatar', $avatar_output) . '</span>'; #filter }
function date($comment) { $timestamp = ($this->meta['date']['options']['time']) ? sprintf(__('%1$s at %2$s'), get_comment_date(stripslashes($this->meta['date']['options']['date_format'])), get_comment_time()) : get_comment_date(stripslashes($this->meta['date']['options']['date_format'])); $text = ($this->meta['number']['show']) ? $timestamp : '<a href="#comment-' . get_comment_ID() . '" title="Permalink to this comment" rel="nofollow">' . $timestamp . '</a>'; return '<span class="comment_time">' . apply_filters('thesis_comment_date', $text) . '</span>'; #filter }
function number($comment) { if (!$GLOBALS['comment_vars']) return; else $c = $GLOBALS['comment_vars']; $number = ($c['current'] - 1) * $c['per_page'] + did_action('thesis_hook_before_comment_meta') + 1; return '<span class="comment_num"><a href="#comment-' . get_comment_ID() . "\" title=\"Permalink to this comment\" rel=\"nofollow\">$number</a></span>"; }
function edit($comment) { if (get_edit_comment_link()) return '<span class="edit_comment">' . apply_filters('thesis_edit_comment_link', '<a href="' . get_edit_comment_link() . '" rel="nofollow">' . __('edit', 'thesis') . '</a>') . '</span>'; #filter } }
|