Чат

Started by Exile on 2015-03-01 10:05 — 143 replies, 29568 views

#131
Я пробовал но сообщения дублируется
#132
Есть адаптация под версию bison 2.3.1?
#133
Есть адаптация под версию bison 2.3.1?
Здравствуйте, обновил ресурс.
#134
belomaxorka обновил(а) ресурс Чат новой записью:

2.0.0

  • Адаптированная под 2.3.* и 2.2.*

Узнать больше об этом обновлении...
#135
belomaxorka обновил(а) ресурс Чат новой записью:

2.0.0



Узнать больше об этом обновлении...
Да спасибо, работает. Только почему она через КЭШ работает. Сообщения появляются только если кэш очистить через админку. Установил его не в pahe header а в index.tpl
#136
Тоже сейчас перевозил моды с Купри и столкнулся с той же проблемой, что и LAV. Версия 2.3.1, мод 2.0.0.
#137
Догадываюсь почему... В Bison сломан файловый кэш, а в Купри я его полностью переписал, абсолютно весь. Тут два выхода - либо использовать не файловый кэш (В Bison), либо ждать выхода alpha3. Я баг с файловым кэшем пофиксил сегодня, без переписывания кэш адаптеров целиком. (В будущем перепишу их и добавлю ещё пару кэш драйверов)

Этот код будет в alpha3 по умолчанию, пока что можете у себя использовать и отписаться потом (это я стянул из последних коммитов с гитхаба). Вставить с заменой в common.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.*, поэтому эта новая функция рекомендуется к использованию всем!
#138
Работает, спасибо!
#139
Вообще, эта функция более чем просто файловый кэш, она в принципе отвечает за запись данных в файлы (датастор, логи, кэш, джампбокс и прочее). Поэтому исправив эту функцию - мы потенциально пофиксили с десяток багов... Очень настоятельно рекомендую её всем использовать
#140
да спасибо работает, очень долго мучился.