Търся мод/скрипт за последни теми на сайта (+автор)

ystefanov

Registered
Търся скрипт или мод, който да ми изкарва последните теми от форума на друг сайт, като освен темата да ми показва и автора й.
Използвам този мод link , но той ми показва само тема, първо съобщение и прикрепени файлове. Дали може да се модифицира й да ми излиза и автора?
 
Скоро си правих аз един, ако нещо не разбираш казвай.

PHP:
    <?php

    define('IN_PHPBB', true);
    $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include($phpbb_root_path . 'common.' . $phpEx);
    include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

    global $auth, $db, $user;

    $user->session_begin();
    $auth->acl($user->data);
    $user->setup();

    // Взимаме информация от базата данни
    $sql_arry = array(
        'SELECT'    => 't.topic_id, t.forum_id,
          t.topic_title, t.topic_poster,
           t.topic_replies, t.topic_views',
        
        'FROM'      => array(
            TOPICS_TABLE    => 't',
        ),
        
        'WHERE'     =>  ($auth->acl_gets('a_') || $auth->acl_gets('m_')) ? '' : 't.topic_approved = \'1\'',
        
        'ORDER_BY'   => 't.topic_time DESC',
    );

    $sql = $db->sql_build_query('SELECT', $sql_arry);
    // Debug
    // print_r($sql_arry);

    // Слагаме лимит на резултатите
    $result = $db->sql_query_limit($sql, (request_var('limit', 10)), false);
    echo "
    <style>
    table a { color: #000; text-decoration: none; }
    table a:hover { text-decoration: underline; }
    table { border: 1px solid #808080; color: #000; }
    td { border: 1px solid #808080; padding: 3px; }
    tr { border: 1px solid #808080; }
    th { border: 1px solid #808080; }
    </style>";
    echo "<table><thead><th>Тема</th><th>Автор</th><th>Отговори</th><th>Преглеждания</th></thead><tbody>";
    // Loop
    while($row = $db->sql_fetchrow($result))
    {

    $sql2 = "SELECT username, user_colour FROM " . USERS_TABLE . " WHERE user_id = '{$db->sql_escape($row['topic_poster'])}'";
    $result2 = $db->sql_query($sql2);
    $row2 = $db->sql_fetchrow($result2);
    $db->sql_freeresult($result2);
    $username = get_username_string('full', $row['topic_poster'], iconv('UTF-8', 'Windows-1251', $row2['username']), $row2['user_colour']);

    $link = append_sid(generate_board_url() . "/viewtopic.$phpEx" . "?f={$row['forum_id']}&t={$row['topic_id']}");
    echo "<tr>";
    echo "<td><a href=\"{$link}\">" . iconv('UTF-8', 'Windows-1251', $row['topic_title']) . "</a></td>";
    echo "<td>{$username}</td>";
    echo "<td>{$row['topic_replies']}</td>";
    echo "<td>{$row['topic_views']}</td>";
    echo "</tr>";
    }
    echo "</tbody></table>";

    $db->sql_freeresult($result);

    ?>
 
Алекс, този код на сайта ли се вкарва? Кои параметри трябва да изменя за да направя връзка са базата данни?
 
ystefanov каза:
Алекс, този код на сайта ли се вкарва? Кои параметри трябва да изменя за да направя връзка са базата данни?

Да , но трябва страницата да е с разширение .php и не ти трябва да правиш връзка , той е готов , автоматично се свързва .
 
Настрой правилната директория до форума.

Код:
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../';

Смени ./../ с папката ( напр. ./forum/).
 
Това обаче показва последните теми, а не мнения (и за тази цел работи перфектно). Има ли вариант да се показват и последните мнения?!
 
Може, Тони.

PHP:
<?php

    define('IN_PHPBB', true);
    $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include($phpbb_root_path . 'common.' . $phpEx);
    include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

    global $auth, $db, $user;

    $user->session_begin();
    $auth->acl($user->data);
    $user->setup();

    // Взимаме информация от базата данни
    $sql_arry = array(
        'SELECT'    => 'p.topic_id, p.forum_id,
          p.post_subject, p.poster_id',
        
        'FROM'      => array(
            POSTS_TABLE    => 'p',
        ),
        
        'WHERE'     =>  ($auth->acl_gets('a_') || $auth->acl_gets('m_')) ? '' : 'p.post_approved = \'1\'',
        
        'ORDER_BY'   => 'p.post_time DESC',
    );

    $sql = $db->sql_build_query('SELECT', $sql_arry);
    // Debug
    // print_r($sql_arry);

    // Слагаме лимит на резултатите
    $result = $db->sql_query_limit($sql, (request_var('limit', 10)), false);
    echo "
    <style>
    table a { color: #000; text-decoration: none; }
    table a:hover { text-decoration: underline; }
    table { border: 1px solid #808080; color: #000; }
    td { border: 1px solid #808080; padding: 3px; }
    tr { border: 1px solid #808080; }
    th { border: 1px solid #808080; }
    </style>";
    echo "<table><thead><th>Тема</th><th>Автор</th></thead><tbody>";
    // Loop
    while($row = $db->sql_fetchrow($result))
    {

    $sql2 = "SELECT username, user_colour FROM " . USERS_TABLE . " WHERE user_id = '{$db->sql_escape($row['poster_id'])}'";
    $result2 = $db->sql_query($sql2);
    $row2 = $db->sql_fetchrow($result2);
    $db->sql_freeresult($result2);
    $username = get_username_string('full', $row['poster_id'], iconv('UTF-8', 'Windows-1251', $row2['username']), $row2['user_colour']);

    $link = append_sid(generate_board_url() . "/viewtopic.$phpEx" . "?f={$row['forum_id']}&t={$row['topic_id']}");
    echo "<tr>";
    echo "<td><a href=\"{$link}\">" . iconv('UTF-8', 'Windows-1251', $row['post_subject']) . "</a></td>";
    echo "<td>{$username}</td>";
    echo "</tr>";
    }
    echo "</tbody></table>";

    $db->sql_freeresult($result);

    ?>
 
Работа, само че как може да се направи да отива не на първото мнение в темата, а на последното?! И как може да се вкара във форума?!
 
Аз по принцип използвам един код за последни мнения от форума, но в него няма автор и брой преглеждания. Може ли към този код да се добави автор и брой преглеждания?!

Ето го кода:
Код:
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
// lastrss autopost mod begin
include ($phpbb_root_path . 'includes/functions_lastrss_autopost.'.$phpEx);
// lastrss autopost mod end
       $sql = 'SELECT topic_title, forum_id, topic_last_post_id
       FROM ' . TOPICS_TABLE . '
       WHERE topic_status <> ' . FORUM_LINK . '
          AND topic_approved = 1
       ORDER BY topic_last_post_time DESC';

    $result = $db->sql_query_limit($sql, 7);

    while( ($row = $db->sql_fetchrow($result)) && ($row['topic_title']) )
    {
       // auto auth
       if ( ($auth->acl_get('f_read', $row['forum_id'])) || ($row['forum_id'] == '0') )
       {
          $template->assign_block_vars('latest_topics', array(
             'TITLE'          => censor_text($row['topic_title']),
             'U_VIEW_TOPIC'   => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'p=' . $row['topic_last_post_id'] . '#p' . $row['topic_last_post_id'])
          ));
       }
    }
    $db->sql_freeresult($result);
 
tony_nikolov каза:
Аз по принцип използвам един код за последни мнения от форума, но в него няма автор и брой преглеждания. Може ли към този код да се добави автор и брой преглеждания?!

Ето го кода:
Код:
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
// lastrss autopost mod begin
include ($phpbb_root_path . 'includes/functions_lastrss_autopost.'.$phpEx);
// lastrss autopost mod end
       $sql = 'SELECT topic_title, forum_id, topic_last_post_id
       FROM ' . TOPICS_TABLE . '
       WHERE topic_status <> ' . FORUM_LINK . '
          AND topic_approved = 1
       ORDER BY topic_last_post_time DESC';

    $result = $db->sql_query_limit($sql, 7);

    while( ($row = $db->sql_fetchrow($result)) && ($row['topic_title']) )
    {
       // auto auth
       if ( ($auth->acl_get('f_read', $row['forum_id'])) || ($row['forum_id'] == '0') )
       {
          $template->assign_block_vars('latest_topics', array(
             'TITLE'          => censor_text($row['topic_title']),
             'U_VIEW_TOPIC'   => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'p=' . $row['topic_last_post_id'] . '#p' . $row['topic_last_post_id'])
          ));
       }
    }
    $db->sql_freeresult($result);
Няма ли кой да ми помогне?!
 
Тони, за да се направи тва, требва да се пипне и файла от темата.
 
Другия код е от:

prosilver/template/index_body.html
Намери:
Код:

След него добави:
Код:
<div class="panel">
   <div class="inner">
      <span class="corners-top"><span></span></span>

<a href="{latest_topics.U_VIEW_TOPIC}" title="">{latest_topics.TITLE}</a>
<br />

      <span class="corners-bottom"><span></span></span>
   </div>
</div>
Друго няма.
 
alex3 каза:
Настрой правилната директория до форума.

Код:
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../';

Смени ./../ с папката ( напр. ./forum/).

Имам някакъв проблем с пренасочването, при променянето на директорията ми излиза отново празна страница. Проблем ли е че форума и сайта са на различни сървъри?
 

Back
Горе