Simple:Press моды: custom-поле и рейтинг пользователя в минипрофиле

Информация, статьи, патчи, исходные коды и т.д.
Post Reply
sva
Администратор
Posts: 125
Joined: 01 May 2015, 19:56

Simple:Press моды: custom-поле и рейтинг пользователя в минипрофиле

Post by sva »

Simple:Press - это плагин с функцией форума для Wordpress. Опишу тут некоторые свои моды, которыми я добавил на свои форумы новый функционал. В данном случае рассматриваем последнюю версию форума - 5.2.6.

Итак, потребовалось выводить кастомное поле в мини профиле пользователя, которое отображается на странице топика, напротив сообщения конкретного пользователя. Для этого в админке добавил поле, знавал его - customfield.
Идём в Темы, редактор темы, выбираем файл spTopicView.php, ищем строку:

Code: Select all

sp_PostIndexUserPosts('tagClass=spPostUserPosts spCenter', __sp('Forum Posts: %COUNT%'));
После неё пишем:

Code: Select all

$sva_customfield = get_user_meta($spThisPostUser->ID, 'customfield', true);
if (!empty($sva_customfield)) echo '<div style=\'font-size: 80%; text-align: center;\'>Наше поле:<br />'.$sva_customfield.'<br /></div>';
Готово!
sva
Администратор
Posts: 125
Joined: 01 May 2015, 19:56

Как сделать рейтинг пользователя из post-rating и вывести его в минипрофиле

Post by sva »

Как сделать рейтинг пользователя из post-rating и вывести его в минипрофиле
Теперь о том, как сделать рейтинг пользователя из плагина Simple:Press - post-rating и вывести его в минипрофиле.

Идём в Темы, редактор темы, выбираем файл spTopicView.php, ищем строку:

Code: Select all

sp_PostIndexUserPosts('tagClass=spPostUserPosts spCenter', __sp('Forum Posts: %COUNT%'));
После неё пишем:

Code: Select all

$sva_sql = 'SELECT SUM(ratings_sum) FROM wp_sfpostratings, wp_sfposts WHERE wp_sfposts.user_id = '.$spThisPostUser->ID.' and wp_sfposts.post_id = wp_sfpostratings.post_id;';
$sva_rate = spdb_select('var', $sva_sql);
if (!empty($sva_rate)) echo '<div style=\'font-size: 80%; text-align: center;\'>Рейтинг: '.$sva_rate.'</div>';
Если рейтинг будет измеряться в пятибалльной системе, то все рейтинги будут суммироваться. Если в системе лайк/дизлайк, то это будет считаться как +1 или -1 соответственно. Можно добавить отображение красным большие рейтинги:

Code: Select all

$sva_sql = 'SELECT SUM(ratings_sum) FROM wp_sfpostratings, wp_sfposts WHERE wp_sfposts.user_id = '.$spThisPostUser->ID.' and wp_sfposts.post_id = wp_sfpostratings.post_id;';
$sva_rate = spdb_select('var', $sva_sql);
if (!empty($sva_rate)) echo '<div style=\'font-size: 80%; text-align: center; color: #'.dechex($sva_rate<0?0:($sva_rater>255?255:$sva_rate)).'0000;\'>Рейтинг: '.$sva_rate.'</div>';
Post Reply