Хак непрочитанного

981
.
BupTyo3 (09.10.2010/19:36)
А может лучше вот так?
$a = $total ? 'Непрочитанное' : '';
Вот это точно фигня какаято будет
.
aka Sex Terror
Почему фигня?коротко и ясно.если переменная тотал истина,то переменной а присваивается слово непроч... а если она ложна,тоесть равна нулю то переменная а остается пустой
.
BupTyo3 (09.10.2010/20:22)
Почему фигня?коротко и ясно.если переменная тотал истина,то переменной а присваивается слово непроч... а если она ложна,тоесть равна нулю то переменная а остается пустой
Неа, интерпретатор по другом разберет его: если $a равно $total, то действие будет "Непрочитанное"(поскольку нет echo, то просто выдаст ошибку разбора, если $a не равно $total, то не будет нифига.
.
BupTyo3 (09.10.2010/19:36)
А может лучше вот так?
$a = $total ? 'Непрочитанное' : '';
Если не ошибаюсь, то правильно так будет:

$a = ($total ? 'Непрочитанное' : '');
.
Не сильно полезный, но пригодится
.
А мне понравился:-)
.
А Я немного по своему сделал этот хак.... просто старую функцию function forum_new в файле incfiles/func.php заменте на:
function forum_new($mod = 0) {
    ////////////////////////////////////////////////////////////
    // Счетчик непрочитанных тем на форуме                    //
    ////////////////////////////////////////////////////////////
    // $mod = 0   Возвращает число непрочитанных тем          //
    // $mod = 1   Выводит ссылки на непрочитанное             //
    ////////////////////////////////////////////////////////////
    global $user_id, $rights;
    if ($user_id) {
        $req = mysql_query("SELECT COUNT(*) FROM `forum`
        LEFT JOIN `cms_forum_rdm` ON `forum`.`id` = `cms_forum_rdm`.`topic_id` AND `cms_forum_rdm`.`user_id` = '" . $user_id . "'
        WHERE `forum`.`type`='t'" . ($rights >= 7 ? "" : " AND `forum`.`close` != '1'") . "
        AND (`cms_forum_rdm`.`topic_id` Is Null
        OR `forum`.`time` > `cms_forum_rdm`.`time`)");
        $total = mysql_result($req, 0);
if ($total == 0){
$a = '';
$b = '';
}else{
$a = '<p><a href="index.php?act=new">Непрочитанное</a>&nbsp;';
$b = '</p>';
}
        if ($mod)
            echo $a . ($total ? '<span class="red">(<b>' . $total . '</b>)</span>' : '') . $b;
        else
            return $total;
    } else {
        if ($mod)
            echo '<p><a href="index.php?act=new">Последние 10 тем</a></p>';
        else
            return false;
    }
}
.
И как? Что выводит эта функция?
.
Z3RO (13.10.2010/20:33)
Неа, интерпретатор по другом разберет его: если $a равно $total, то действие будет "Непрочитанное"(поскольку нет echo, то просто выдаст ошибку разбора, если $a не равно $total, то не будет нифига.
во первых - $а равно $тотал выглядит не так: $a = $total; а вот так: $a == $total; во вторых - откуда ты можешь знать, как будет анализировать интерпретатор тот или иной код, если не знаешь элементарного php-синтаксиса

Виртуоз вам верный пример привел:
$a = $total ? 'Непрочитанное: ' : '';
//это условие аналогично можно записать с оператором if
if ($total) {
echo 'Непрочитанное: ';
}

оба условия верны.
.
Может кому и пригодится)))
Всего: 55