Медали

Медали 1.0.0

ExPlayer

Пользователь
Решение проблемы, спасибо Virtuoz

«в viewtopic.php удали все что связано с предыдущем кодом и сделай как ниже»

Код:
viewtopic.php

найти

//
// Update the topic view counter
//
$sql = "INSERT INTO ". BUF_TOPIC_VIEW ." (topic_id,  topic_views) VALUES ($topic_id, 1) ON DUPLICATE KEY UPDATE topic_views = topic_views + 1";
if (!DB()->sql_query($sql))
{
    bb_die('Could not update topic views');
}

после добавить

    // Medal MOD
$medal = $medals = array();
$poster_ids = 0;
for($i = 0; $i < $total_posts; $i++)
{
    $poster_ids .= ','. $postrow[$i]['user_id'];
}
$order = ( $bb_cfg['medal_display_order'] ) ? "RAND()" : "m.medal_name";
$sql = DB()->fetch_rowset("SELECT m.medal_id, m.medal_name, m.medal_image, mu.user_id
    FROM " . BB_MEDAL . " m, " . BB_MEDAL_USER . " mu
    WHERE mu.user_id IN ($poster_ids)
    AND m.medal_id = mu.medal_id
    ORDER BY $order");

$medal_width = ( $bb_cfg['medal_display_width'] ) ? 'width="'.$bb_cfg['medal_display_width'].'"' : '';
$medal_height = ( $bb_cfg['medal_display_height'] ) ? 'height="'.$bb_cfg['medal_display_height'].'"' : '';
$j = 1;
foreach($sql as $row)
{
    $j++;
    if(empty($medals[$row['user_id']]))
    {
        $medals[$row['user_id']] = 1;

    }
    else
    {
        $medals[$row['user_id']]++;
    }

    if(empty($medal[$row['user_id']])) $medal[$row['user_id']] = '';
    $medal[$row['user_id']] .= '&nbsp;<img src="'. $row['medal_image'] .'" border="0" alt="'. $row['medal_name'] .'" title="'. $row['medal_name'] .'" '. $medal_width .' '. $medal_height .' />';
    if($j == 3)
    {
        $medal[$row['user_id']] .= '<br />';
        $i = 1;
    }
}
//Medal MOD [END]
   
   
    найти
   
    'POSTER_AVATAR'      => $poster_avatar,
   
    добавить
   
    'POSTER_MEDAL_COUNT' => !empty($medals[$poster_id]) ? $medals[$poster_id] : 0,
    'POSTER_MEDALS'      => !empty($medal[$poster_id]) ? $medal[$poster_id] : '',

Код:
в viewtopic.tpl

заменить на

     
<br /><br />{postrow.POSTER_MEDALS}<br />
        <hr>
        <center>
        <!-- BEGIN medal -->
       <table border="0" cellspacing="0" cellpadding="5">
        <!-- BEGIN medal_row -->
        <tr align="left" valign="middle">
        <!-- BEGIN medal_col -->
        <td><img src="{postrow.medal.medal_row.medal_col.MEDAL_IMAGE}" border="0" alt="{postrow.medal.medal_row.medal_col.MEDAL_NAME} {postrow.medal.medal_row.medal_col.MEDAL_COUNT}" title="{postrow.medal.medal_row.medal_col.MEDAL_NAME} {postrow.medal.medal_row.medal_col.MEDAL_COUNT}" {postrow.medal.medal_row.medal_col.MEDAL_WIDTH} {postrow.medal.medal_row.medal_col.MEDAL_HEIGHT} /></td>
        <!-- END medal_col -->
        </tr>
        <!-- END medal_row -->
    </table>
    <!-- END medal -->
    </center>
 

veliant9

Пользователь
Мод супер!!! Все работает на 2.1.5
Помогите плз исправить косяк отображения
8982430.png

поднять как было и надпись награды вернуть
 

sхс

Легенда
Ну и как мод? Неужели никому не влом прописывать вручную ссылки на изображения?

Доработал немного
13-04-2016 23-37-30.jpg
js и css кидаем в /misc/js/iconselect/
 

Вложения

  • medalz.zip
    10.2 KB · Просмотры: 35

ExPlayer

Пользователь
Подскажите, как сделать, что бы "подробности награждения" (в профиле пользователя) были доступы всем пользователям, а не только администратору? На данный момент "подробности награждения" доступны только администратору, у остальных пользователей при нажатии на кнопку "Подробности награждения" ничего не происходит.
 
Последнее редактирование:

ExPlayer

Пользователь
ExPlayer, в коде модификации поискать условие IS_ADMIN и убрать.

Нашел только это (но если я правильно понял, то отсюда IS_ADMIN лучше не удалять?) в файле viewprofile.php:
PHP:
if (IS_ADMIN)
{
    $rank_select = array($lang['NONE'] => 0);
    foreach ($ranks as $row)
    {
        $rank_select[$row['rank_title']] = $row['rank_id'];
    }
    $rank_select = build_select('rank-sel', $rank_select, $user_rank);
}

if (bf($profiledata['user_opt'], 'user_opt', 'user_viewemail') || $profiledata['user_id'] == $userdata['user_id'] || IS_AM)
{
    $email_uri = ($bb_cfg['board_email_form']) ? 'profile.php?mode=email&amp;'. POST_USERS_URL .'='. $profiledata['user_id'] : 'mailto:'. $profiledata['user_email'];
    $email = '<a class="editable" href="'. $email_uri .'">'. $profiledata['user_email'] .'</a>';
}
else
{
    $email = '';
}

//
// Generate page
//

$profile_user_id = ($profiledata['user_id'] == $userdata['user_id']);

$signature = ($bb_cfg['allow_sig'] && $profiledata['user_sig']) ? $profiledata['user_sig'] : '';

if(bf($profiledata['user_opt'], 'user_opt', 'dis_sig'))
{
    if($profile_user_id)
    {
        $signature = $lang['SIGNATURE_DISABLE'];
    }
    else
    {
        $signature = '';
    }
}
else if ($signature)
{
    $signature = bbcode2html($signature);
}

if ($bb_cfg['rationull_enabled'])
{
    $btu = get_bt_userdata($profiledata['user_id']);
}

$sql = "SELECT cat_id, cat_title
    FROM " . BB_MEDAL_CAT . "
    ORDER BY cat_order";
if( !($result = DB()->sql_query($sql)) )
{
    message_die(GENERAL_ERROR, 'Could not query medal categories list', '', __LINE__, __FILE__, $sql);
}
$category_rows = array();
while ( $row = DB()->sql_fetchrow($result) )
{
    $category_rows[] = $row;
}
DB()->sql_freeresult($result);
$sql = "SELECT m.medal_id, mu.user_id
    FROM " . BB_MEDAL . " m, " . BB_MEDAL_USER . " mu
    WHERE mu.user_id = '" . $profiledata['user_id'] . "'
    AND m.medal_id = mu.medal_id
    ORDER BY m.medal_name";
if($result = DB()->sql_query($sql))
{
    $medal_list = DB()->sql_fetchrowset($result);
    $medal_count = count($medal_list);
    if ($medal_count)
    {
        $medal_count = '<a href="' . "profile.php?mode=viewprofile&amp;" . POST_USERS_URL . "=" . $profiledata['user_id'] . "#medal" . '" class="genmed">' . $medal_count . '</a>';
        $template->assign_block_vars('switch_display_medal', array());
        $template->assign_block_vars('switch_display_medal.medal', array(
            'MEDAL_BUTTON' => '<button onclick="ToggleBox(\'toggle_medal\')">'.$lang['MEDAL_DETAILS'].'</button>')
        );
    }
}
 
Сверху