Вывод тем на сайт

Автор Whyskas, 31 октября 2018, 06:43:31

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Whyskas

Ребят, помогите изменить запрос пожалуйста. Включил возможность добавлять реальное имя, а модуль последних постов на сайте отображает соответственно не "Реальное имя", а "Имя аккаунта" и это естественно. Нужно как-то real_name присвоить ячейке poster_name.

П.С. Форум использует php 5.6, а сайт в силу старости и закрытости кода php 5.3

В движке нашёл кусок кода, но как его применить пока не доходит idiot

// Get the subject and body...
$result = $smcFunc['db_query']('', '
SELECT mf.subject, ml.body, ml.id_member, t.id_last_msg, t.id_topic,
IFNULL(mem.real_name, ml.poster_name) AS poster_name
FROM {db_prefix}topics AS t
INNER JOIN {db_prefix}messages AS mf ON (mf.id_msg = t.id_first_msg)
INNER JOIN {db_prefix}messages AS ml ON (ml.id_msg = t.id_last_msg)
LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = ml.id_member)
WHERE t.id_topic IN ({array_int:topic_list})
LIMIT 1',
array(
'topic_list' => $topics,
)
);

Вот вот собственно часть запроса в моем модуле

if ( $cfg["forum"]["version"] == "smf" ) {
            $fsql = "
      SELECT id_topic,subject,id_board,poster_time,id_member,poster_name
      FROM {$cfg["forum"]["prefix"]}messages
      WHERE id_board NOT IN ({$cfg["forum"]["deny"]})
      ORDER BY poster_time DESC
      LIMIT {$cfg["forum"]["count"]}";
            $furl_user = "index.php?action=profile;u=";
            $furl_link = "index.php?topic={topic_id}'";
        }

Whyskas

Для булки после FROM добавляется оператор LEFT JOIN

LEFT JOIN {$cfg["forum"]["prefix"]}user u ON t.lastposter = u.username

Вот для SMF что то подобное нужно

Whyskas

#2
Всем спасибо!  ;D  ;D  ;D  Сам разобрался

        if ( $cfg["forum"]["version"] == "smf" ) {
            $fsql = "
      SELECT t.id_topic,t.subject,t.id_board,t.poster_time,t.id_member,
            IFNULL(u.real_name, t.poster_name) AS poster_name
      FROM {$cfg["forum"]["prefix"]}messages t
        LEFT JOIN {$cfg["forum"]["prefix"]}members AS u ON (u.id_member = t.id_member)
      WHERE t.id_board NOT IN ({$cfg["forum"]["deny"]})
      ORDER BY t.poster_time DESC
      LIMIT {$cfg["forum"]["count"]}";
            $furl_user = "index.php?action=profile;u=";
            $furl_link = "index.php?topic={topic_id}'";
        }