Похожие темы

Похожие темы 1.1.0

Нет прав для скачивания
Совместимость
проверялся на совместимость
Изменения в БД
не требуются
Автор
_Xz_
Общественное достояние
да
Описание: добавляет вывод похожих тем при просмотре темы.
Инструкция по установке
PHP:
config.php
+
$bb_cfg['similar_topics']     = 5; //Кол-во выводимых топиков если 0 мод отключен
$bb_cfg['similar_title']      = 3; //Кол-во слов для поиска
$bb_cfg['similar_title_len']  = 3; //Минимальная длина слов для поиска


displaying_torrent.php
?
    if (!$dl_allowed)
+перед
    if($bb_cfg['similar_topics'])
    {
        global $title_match, $datastore;

        if (!$forums = $datastore->get('cat_forums'))
        {
            $datastore->update('cat_forums');
            $forums = $datastore->get('cat_forums');
        }

        $title_match = true;
        $search_match_topics_csv = '';

        $row_title = explode(" ", $t_data['topic_title']);
        foreach($row_title as $title)
        {
            if(isset($i) && !($i < $bb_cfg['similar_title'])) continue;

            if(mb_strlen($title, 'UTF-8') > $bb_cfg['similar_title_len'])
            {
                $titles[] = $title;
                $i++;
            }
        }
        if(empty($titles)) $titles = $row_title[1];

        $title_match_sql = clean_text_match(join(' ', $titles), true, false, false);
        $title_match_topics = get_title_match_topics($title_match_sql, array());
        $search_match_topics_csv = join(',', $title_match_topics);

        if($search_match_topics_csv)
        {
            $trash_forums = $bb_cfg['trash_forum_id'] ? $bb_cfg['trash_forum_id'] : '0';

            $similar = DB()->fetch_rowset("SELECT t.*, u.*, u2.username as last_username, u2.user_id as last_user_id,
                u2.user_rank as last_user_rank, tor.*, ts.seeders, ts.leechers
                    FROM ". BB_TOPICS ." t
                    LEFT JOIN ". BB_USERS ." u ON(t.topic_poster          = u.user_id)
                    LEFT JOIN ". BB_POSTS ." p ON(p.post_id               = t.topic_last_post_id)
                    LEFT JOIN ". BB_USERS ." u2 ON(p.poster_id            = u2.user_id)
                    LEFT JOIN ". BB_BT_TORRENTS ." tor ON(t.topic_id      = tor.topic_id)
                    LEFT JOIN ". BB_BT_TRACKER_SNAP ." ts ON(tor.topic_id = ts.topic_id)
                WHERE t.topic_id   IN($search_match_topics_csv)
                    AND t.topic_id != {$t_data['topic_id']}
                    AND t.topic_id = tor.topic_id
                GROUP BY tor.topic_id
                ORDER BY t.topic_last_post_time DESC
                LIMIT {$bb_cfg['similar_topics']}
            ");

            if($similar)
            {
                $page_cfg['use_tablesorter'] = true;

                $template->assign_vars(array(
                    'SIMILAR_TOPICS' => true,
                ));

                foreach ($similar as $row)
                {
                    $is_unread = is_unread($row['topic_last_post_time'], $row['topic_id'], $row['forum_id']);

                    $template->assign_block_vars('postrow.attach.similar', array(
                        'POST_ID'           => $row['topic_first_post_id'],

                        'TOPIC_ID'          => $row['topic_id'],
                        'TOPIC_TITLE'       => wbr(str_short($row['topic_title'], 70)),
                        'FULL_TOPIC_TITLE'  => $row['topic_title'],

                        'FORUM_NAME'        => $forums['forum'][$row['forum_id']]['forum_name'],
                        'U_FORUM'           => FORUM_URL . $row['forum_id'],

                        'REPLIES'           => $row['topic_replies'],
                        'VIEWS'             => $row['topic_views'],

                        'POSTER'            => profile_url($row),
                        'AUTHOR'            => profile_url(array('user_id' => $row['last_user_id'], 'username' => $row['last_username'], 'user_rank' => $row['last_user_rank'])),
                        'LAST_POST_TIME'    => bb_date($row['topic_last_post_time']),
                        'LAST_POST_ID'      => $row['topic_last_post_id'],

                        'IS_UNREAD'         => $is_unread,
                        'TOPIC_ICON'        => get_topic_icon($row, $is_unread),
                        'PAGINATION'        => ($row['topic_status'] == TOPIC_MOVED) ? '' : build_topic_pagination(TOPIC_URL . $row['topic_id'], $row['topic_replies'], $bb_cfg['posts_per_page']),

                        'SEEDERS'           => ($row['seeders']) ? $row['seeders'] : 0,
                        'LEECHERS'          => ($row['leechers']) ? $row['leechers'] : 0,
                        'TOR_SIZE'          => humn_size($row['size']),
                        'COMPL_CNT'         => $row['complete_count'],
                        'ATTACH_ID'         => $row['attach_id'],
                        'TOR_FROZEN'        => (!IS_AM) ? isset($bb_cfg['tor_frozen'][$row['tor_status']]) : '',
                        'TOR_STATUS_ICON'   => $bb_cfg['tor_icons'][$row['tor_status']],
                        'TOR_STATUS_TEXT'   => $lang['TOR_STATUS_NAME'][$row['tor_status']],
                    ));
                }
            }
        }
    }

viewtopic_attach.tpl
?
<!-- END attach -->
+перед
<!-- IF SIMILAR_TOPICS -->
<script type="text/javascript">
ajax.openedPosts = {};

ajax.view_post = function(post_id, src) {
    if (!ajax.openedPosts[post_id]) {
        ajax.exec({
            action  : 'view_post',
            post_id : post_id
        });
    }
    else {
        var $post = $('#post_'+post_id);
        if ($post.is(':visible')) {
            $post.hide();
        }    else {
            $post.css({ display: '' });
        }
    }
    $(src).toggleClass('unfolded2');
};

ajax.callback.view_post = function(data) {
    var post_id = data.post_id;
    var $tor = $('#tor_'+post_id);
    window.location.href='#tor_'+post_id;
    $('#post-row tr')
        .clone()
        .attr({ id: 'post_'+post_id })
        .find('div.post_body').html(data.post_html).end()
        .find('a.tLink').attr({ href: $('a.tLink', $tor).attr('href') }).end()
        .find('a.dLink').attr({ href: $('a.si-dl', $tor).attr('href') }).end()
        .insertAfter($tor)
    ;
    initPostBBCode('#post_'+post_id);
    var maxH   = screen.height - 290;
    var maxW   = screen.width - 60;
    var $post  = $('div.post_similar_wrap', $('#post_'+post_id));
    var $links = $('div.post_links', $('#post_'+post_id));
    $post.css({ maxWidth: maxW, maxHeight: maxH });
    $links.css({ maxWidth: maxW });
    if ($.browser.msie) {
        if ($post.height() > maxH) { $post.height(maxH); }
        if ($post.width() > maxW)  { $post.width(maxW); $links.width(maxW); }
    }
    ajax.openedPosts[post_id] = true;
};
</script>

<style type="text/css">
.post_similar_wrap { border: 1px #A5AFB4 solid; margin: 8px 8px 6px; overflow: auto; }
.post_links { margin: 6px; }
.unfolded2, .folded2 { display: block; }
</style>

<table id="post-row" style="display: none;">
<tr>
    <td class="row2" colspan="8">
        <div class="post_similar_wrap row1">
            <div class="post_body pad_6"></div>
            <div class="clear"></div>
        </div>
        <div class="post_links med bold tCenter"><a class="tLink">{L_OPEN_TOPIC}</a> &nbsp;&#0183;&nbsp; <a class="dLink">{L_DL_TORRENT}</a></div>
    </td>
</tr>
</table>
<div class="spacer_10"></div>
<table class="bordered w100">
<th class="thHead gen clickable bold" style="font-size: 12px;" onclick="toggle_block('relesing'); return false;">Похожие темы</th>
<tr id="relesing" style="display: none;">
<td class="td2 row2 tCenter">
<table width="100%" class="forumline tablesorter">
<thead>
<tr>
    <th class="{sorter: 'text'}"></th>
    <th class="{sorter: 'text'}"></th>
    <th width="25%" class="{sorter: 'text'}"><b class="tbs-text">{L_FORUM}</b></th>
    <th width="75%" class="{sorter: 'text'}"><b class="tbs-text">{L_TOPIC}</b></th>
    <th width="100" class="{sorter: 'text'}"><b class="tbs-text">{L_AUTHOR}</b></th>
    <th class="{sorter: false}">{L_TORRENT}</th>
    <th class="{sorter: false}">{L_REPLIES_SHORT}</th>
    <th width="120" class="{sorter: 'text'} nowrap"><b class="tbs-text">{L_LASTPOST}</b></th>
</tr>
</thead>
<!-- BEGIN similar -->
<tr class="tCenter row1 med" id="tor_{postrow.attach.similar.POST_ID}">
    <td>
        <span style="display: none;">{postrow.attach.similar.TOPIC_ICON}</span>
        <img src="{postrow.attach.similar.TOPIC_ICON}">
    </td>
    <td class="row1 tCenter" title="{postrow.attach.similar.TOR_STATUS_TEXT}">{postrow.attach.similar.TOR_STATUS_ICON}</td>
    <td><a class="med" href="{postrow.attach.similar.U_FORUM}" class="genmed">{postrow.attach.similar.FORUM_NAME}</a></td>
    <td class="tLeft">
        <a title="{postrow.attach.similar.FULL_TOPIC_TITLE}" class="folded2 tLink" onclick="ajax.view_post({postrow.attach.similar.POST_ID}, this); return false;" href="{TOPIC_URL}{postrow.attach.similar.TOPIC_ID}"><!-- IF postrow.attach.similar.TOR_FROZEN -->{postrow.attach.similar.TOPIC_TITLE}<!-- ELSE --><b>{postrow.attach.similar.TOPIC_TITLE}</b><!-- ENDIF --></a>
        <!-- IF postrow.attach.similar.PAGINATION --><span class="topicPG">&nbsp;[{ICON_GOTOPOST}{L_GOTO_SHORT} {postrow.attach.similar.PAGINATION} ]</span><!-- ENDIF -->
    </td>
    <td><a class="med" href="{postrow.attach.similar.POSTER_URL}">{postrow.attach.similar.POSTER}</a></td>
    <td class="tCenter nowrap" style="padding: 2px 4px;">
        <span class="seedmed" title="{L_SEEDERS}"><b>{postrow.attach.similar.SEEDERS}</b></span><span class="med"> | </span><span class="leechmed" title="{L_LEECHERS}"><b>{postrow.attach.similar.LEECHERS}</b></span>
        <div class="spacer_2"></div>
        <!-- IF postrow.attach.similar.TOR_FROZEN -->{postrow.attach.similar.TOR_SIZE}<!-- ELSE --><a title="{L_DL_TORRENT}" href="{DOWNLOAD_URL}{postrow.attach.similar.ATTACH_ID}" class="small si-dl">{postrow.attach.similar.TOR_SIZE}</a><!-- ENDIF -->
    </td>
    <td class="tCenter small nowrap" style="padding: 3px 4px 2px;">
    <p>
        <span title="{L_REPLIES}">{postrow.attach.similar.REPLIES}</span>
        <span class="small"> | </span>
        <span title="{L_VIEWS}">{postrow.attach.similar.VIEWS}</span>
    </p>
    <p style="padding-top: 2px" class="med" title="{L_COMPLETED}">
        <b>{postrow.attach.similar.COMPL_CNT}</b>
    </p>
    </td>
    <td class="gensmall nowrap">
        <div>{postrow.attach.similar.LAST_POST_TIME}</div>
        <a class="med" href="{postrow.attach.similar.AUTHOR_URL}">{postrow.attach.similar.AUTHOR}</a> <!-- IF postrow.attach.similar.IS_UNREAD --><a href="{TOPIC_URL}{postrow.attach.similar.TOPIC_ID}{NEWEST_URL}">{ICON_NEWEST_REPLY}</a><!-- ELSE -->
        <a href="{POST_URL}{postrow.attach.similar.LAST_POST_ID}#{postrow.attach.similar.LAST_POST_ID}">{ICON_LATEST_REPLY}</a><!-- ENDIF -->
    </td>
</tr>
<!-- END similar -->
</table>
    </td>
    </tr>
    </table>
<div class="spacer_10"></div>
<!-- ENDIF -->
Автор
Exile
Скачивания
93
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя Exile

Последние обновления

  1. Обновление 1.1.0

    Обновлено описание ресурса