# 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 дописал, но проблема была в области видимости.
# 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 статьи из библиотеки.
ДоХтор, Спасибо, все теперь работает