Чат

Чат 2.0.1

LAV

Пользователь
Да спасибо, работает. Только почему она через КЭШ работает. Сообщения появляются только если кэш очистить через админку. Установил его не в pahe header а в index.tpl
 
Последнее редактирование:

aiscy

Пользователь
Тоже сейчас перевозил моды с Купри и столкнулся с той же проблемой, что и LAV. Версия 2.3.1, мод 2.0.0.
 
Последнее редактирование:

belomaxorka

Разработчик
Администратор
Догадываюсь почему... В Bison сломан файловый кэш, а в Купри я его полностью переписал, абсолютно весь. Тут два выхода - либо использовать не файловый кэш (В Bison), либо ждать выхода alpha3. Я баг с файловым кэшем пофиксил сегодня, без переписывания кэш адаптеров целиком. (В будущем перепишу их и добавлю ещё пару кэш драйверов)

Этот код будет в alpha3 по умолчанию, пока что можете у себя использовать и отписаться потом (это я стянул из последних коммитов с гитхаба). Вставить с заменой в common.php
PHP:
function file_write($str, $file, $max_size = LOG_MAX_SIZE, $lock = true, $replace_content = false)
{
    $bytes_written = false;
    clearstatcache();

    if (($max_size && file_exists($file) && is_file($file)) && filesize($file) >= $max_size) {
        $file_parts = pathinfo($file);
        $new_name = ($file_parts['dirname'] . '/' . $file_parts['filename'] . '_[old]_' . date('Y-m-d_H-i-s_') . getmypid() . '.' . $file_parts['extension']);
        clearstatcache();
        if (!file_exists($new_name) && !is_file($new_name)) {
            rename($file, $new_name);
        }
    }
    clearstatcache();
    if (bb_mkdir(dirname($file))) {
        $fp = fopen($file, 'ab+');
        if ($lock) {
            flock($fp, LOCK_EX);
        }
        if ($replace_content) {
            ftruncate($fp, 0);
            fseek($fp, 0, SEEK_SET);
        }
        $bytes_written = fwrite($fp, $str);
        fclose($fp);
    }

    return $bytes_written;
}

Насколько я помню, файловый кэш мертвый ещё с версии 2.2.*, поэтому эта новая функция рекомендуется к использованию всем!
 
Последнее редактирование:

belomaxorka

Разработчик
Администратор
Вообще, эта функция более чем просто файловый кэш, она в принципе отвечает за запись данных в файлы (датастор, логи, кэш, джампбокс и прочее). Поэтому исправив эту функцию - мы потенциально пофиксили с десяток багов... Очень настоятельно рекомендую её всем использовать
 
Сверху