Вывод тем форума и библиотеки на главную

1.76K
.
# Dezaktivator (29.05.2017 / 20:00)
ДоХтор, О, круть. Сработало. Замучился я с этим, думал мультик давно из джона выпилили, ан нет, есть зараза.
Ну, вроде бы как не рекомендуется использовать глобальные переменные. Я тебе дал пример с глобальной переменной для того, чтобы убедиться, работает ли остальная часть в коде. Теперь можно просто передать в мою функцию ту переменную третьим параметром. То есть, строку global $lng; теперь надо удалить, а функцию записать так:
function LastNotes($lng, $switch = 'F', $lmt = 5) {
    // Тут весь твой код
}

// И в вызов фунции добавить аргумент
echo LastNotes($lng);
.
# kantry (29.05.2017 / 20:01)
ДоХтор, Не используется в функции $lng, не надо его туда пихать)) Ищите в другом месте, а то вылезет когда не ждешь.
Это в моей не использовалось. А он в неё $lng дописал, но проблема была в области видимости.
.
ДоХтор,
// И в вызов фунции добавить аргумент
echo LastNotes($lng);

Вот этого не понял
.
# Dezaktivator (30.05.2017 / 16:58)
Вот этого не понял
Напиши тут, как ты вызываешь функцию.
.
ДоХтор, Я взял этот код , он короче
function LastNotes($switch = 'F', $lmt = 5) {
    if ($switch == 'F' && intval($lmt) > 0) {
    $out = '<div class="bmenu">Последние <b>'. $lmt .'</b> тем форума</div>';
    $sql = "SELECT id, text FROM forum WHERE type = 't' ORDER BY time DESC LIMIT $lmt";
    } elseif ($switch == 'L' && intval($lmt) > 0) {
    $out = '<div class="bmenu">Последние <b>'. $lmt .'</b> статей библиотеки</div>';
    $sql = "SELECT id, name, count_views, count_comments FROM library_texts
    WHERE premod = 1 ORDER BY time DESC LIMIT $lmt";
    } else {
    return false;
    }
    $res = mysql_query($sql) or die (mysql_error());
    $i = 0;
    while ($row = mysql_fetch_assoc($res)) {
    if ($switch == 'F') {
    $out .= ($i % 2 ? '<div class="list2">' : '<div class="list1">') .
    '<a href="/forum/?id='. $row['id'] .'">'. $row['text'] .'</a></div>';
    } elseif ($switch == 'L') {
    $color_views = ($row['count_views'] > 0 ? 'green' : 'red');
    $color_comments = ($row['count_comments'] > 0 ? 'green' : 'red');
    $out .= ($i % 2 ? '<div class="list2">' : '<div class="list1">') .
    '<a href="/library/?id='. $row['id'] .'">'. $row['name'] .'</a>' .
    '<div class="topmenu">просмотры: <span style="color:'. $color_views .'">'.
    $row['count_views'] .'</span> комментарии: <span style="color:'. $color_comments .'">'.
    $row['count_comments'] .'</span></div></div>';
    }
    $i++;
    }
    return $out;
    }
     
    echo LastNotes('L'); //Последние 5 статей библиотеки
    echo LastNotes('F', 10); //Последние 10 тем форума

Начало поменял на
function LastNotes($lng, $switch = 'F', $lmt = 5) {
// Тут весь твой код
}
и в конце добавил
echo LastNotes($lng);

Но так вывод из библиотеки пропадает совсем.
Если можешь , напиши как правильно это реализовать.
.
Чтобы вывести вместо форума библиотеку, надо в вызове функции её указать
echo LastNotes($lng, 'L', 3);
Вот так должно вывести в браузер последние 3 статьи из библиотеки.
.
ДоХтор, Спасибо, все теперь работает
Всего: 77