Добавлена поддержка РНР 7.4 для LiveStreet CMS

Обновил движки как первой так и второй версии для поддержки РНР 7.4. Плюс исправил некоторые ошибки. Можете написать, что ещё надо поправить.

LiveStreet 1.0.3
github.com/sersar/livestreet-1/tree/3fa6ae9d441092cd1b7b0e256e4ef7fc76431dbd

LiveStreet 2.1.0
github.com/livestreet/livestreet
github.com/sersar/livestreet-framework
(возможно позже внесут изменения в официальную ветку)

Просьба в комментариях ответить на вопросы:
  1. Будете ли обновлять движок до совместимости с РНР 7.4?
  2. Хотели бы внести какие-нибудь поправки в движок? Обновить библиотеки?
  3. Интересует адаптация/разработка плагинов в складчину?

P.S. Пишите по делу! Без больших постов и «умных» мыслей.

Желающим поддержать финансово можно здесь.

44 комментария

avatar
По уму я бы вообще отдал сайт и всю разработку товарищу sersar., Видно же что никому ничего не нужно. Ни себе ни людям.
avatar
Хорошие новости, спасибо sersar
avatar
А все эти апдейты обратно совместимы с php 5.6?
avatar
Да.
avatar
В идеале обновить бы jQuery до 3-й версии. Но наверное много либ придется поправлять
avatar
В какой версии LiveStreet?
avatar
В обоих). Я на 1.0.3 обновил до 2.2.4 — вроде полет нормальный
avatar
Нашел отличное руководство по миграции, оставлю здесь: MIGRATING A PHP 5 APP TO PHP 7
avatar
Давайте скинемся sersar денежкой в качестве компенсации поддержки движка, на который уже даже создателям пофиг?
Выстави реквизиты, хоть пару сотен закину)))
Огромной души человек!!!
Хоть на кофе/чай…
avatar
Спасибо! Подумаю.
avatar
Да, реквизиты Paypal, пожадуйста.
Очень хочется, чтобы кто-то поддержал проект, работал над CMS.
avatar
Поддержать финансово можно здесь.
avatar
Поддержать финансово можно здесь.
avatar
Готово. Кто ещё смелый? )))
avatar
Объясните, пожалуйста, что конкретно дает переход с PHP5 до PHP7 именно для LS? Желательно с картинками/числами/графиками/примерами.
avatar
Безопасность. Производительность.
avatar
У меня на php7 пока только на локалке. Если сравнивать с php5, то скорость загрузки возросла примерно в 2 раза!
avatar
Банально возможность использовать актуальную версию ОС на сервере. К примеру, последние Debian и Ubuntu работают PHP7. А поставить старые версии — целая проблема.
avatar
Супер
avatar
Есть у кого желание тестировать правки? Желательно небольшой сайт.
avatar
Первый баг — плагины не могут переопределить существующие файлы шаблонов.
avatar
Какая версия движка? Скриншот ошибки кинь.
avatar
1.0.3 тут без скрина. Допетрил методом тыка. После обновления движка часть функций крупного плагина работала, а часть нет. Полез в код, понял что шаблоны не цепляются. Перенес те, что были переопределены в плагине в основной шабон и всё заработало.
avatar
Подтверждаю. Переопределение не работает. Если необходимо его использовать, то не обновлять библиотеку Smarty.
avatar
Как ты уже знаешь:) я обновил Smarty до 3.1.13.
Тоже сталкивался с проблемой делегирования шаблонов.
Проблема решается этим коммитом или этим (более правильным на мой взгляд)
avatar
Внёс функционал. Версия Smarty последняя.
Проверь. Теперь всё работает?
avatar
А это примерно тот же фикс?
avatar
Notice: unserialize(): Error at offset 204 of 2552 bytes in D:\OpenServer\OSPanel\domains\...\classes\modules\topic\entity\Topic.entity.class.php on line 460

Notice: unserialize(): Error at offset 181 of 2406 bytes in D:\OpenServer\OSPanel\domains\...\classes\modules\topic\entity\Topic.entity.class.php on line 460

Notice: unserialize(): Error at offset 493 of 615 bytes in D:\OpenServer\OSPanel\domains\...\classes\modules\topic\entity\Topic.entity.class.php on line 460

Notice: unserialize(): Error at offset 181 of 2526 bytes in D:\OpenServer\OSPanel\domains\...\classes\modules\topic\entity\Topic.entity.class.php on line 460
avatar
Там просто собачку убрали в этом коммите, а она как раз гасит нотайсы
avatar
Стопудово, а собачку то я и не заметил)))
avatar
С «собачкой» переопределение шаблонов заработало
avatar
Проблема оказалась немного глубже)) Немного погуглил и нашел на стаке решение. Вот вкратце причина проблемы:
— Сериализированные данные, хранящиеся в topic_extra должны иметь одинарные кавычки вместо двойных. Оптимальное решение — имеющиеся данные перед десериализацией нужно исправить preg_replace-ом. А для новых данных оптимальный вариант — предварительное кодирование/декодирование данных в base64.
— Также рекомендуется сменить тип поля topic_extra изменить с TEXT на MEDIUMTEXT
avatar
Сделал пока так в этом участке:
protected function extractExtra() {
    if (is_null($this->aExtra)) {
        $aExtra = preg_replace_callback ( '!s:(\d+):"(.*?)";!', function($match) {      
            return ($match[1] == strlen($match[2])) ? $match[0] : 's:' . strlen($match[2]) . ':"' . $match[2] . '";';
        }, $aExtra );
        $aExtra = unserialize($this->getExtra());
        $this->aExtra = is_array($aExtra) ? $aExtra : array();
    }
}

Вроде исчезли нотайсы
avatar
Скинь дамп таблиц с проблемными топиками. И какие плагины активны?
avatar
В логах было много таких нотайсов. Плагинов много. Судя по содержимому topic_extra, туда пишет плагин mainpreview
avatar
Немного ошибся, точнее так:
protected function extractExtra() {
    if (is_null($this->aExtra)) {
        $aFixExtra = preg_replace_callback ( '!s:\d+:"(.*?)";!s', function($match) {
            return "s:" . strlen($match[1]) . ':"' . $match[1] . '";';
        }, $this->getExtra() );
        $aExtra = unserialize($aFixExtra);
        $this->aExtra = is_array($aExtra) ? $aExtra : array();
    }
}
avatar
Исчезли нотайсы или с правкой извлекает правильно? Не должно быть никаких костылей. Кинь проблемную строку.
Плагин превью работает нормально.
avatar
Нотайсы исчезают с собачкой, но без нее они же почему-то появляются. Поэтому решил изучить причину появления нойтайсов, мне показалось, что здесь описывается аналогичная проблема
avatar
А ещё Deprecated: Function create_function() is deprecated in D:\OpenServer\OSPanel\domains\xn----7sbhjbnzqln3a8hfbf.xn--p1ai\engine\modules\plugin\Plugin.class.php on line 118
avatar
/**
		 * Если нужно сортировать плагины
		 */
		if (isset($aFilter['order'])) {
			if ($aFilter['order']=='name') {
				$aPlugins=$this->aPluginsList;
				uasort($aPlugins, function ($a,$b) 
				{
					if ((string)$a['property']->name->data == (string)$b['property']->name->data) 
					{ return 0; }
				return ((string)$a['property']->name->data < (string)$b['property']->name->data) ? -1 : 1;
				}
				);
				return $aPlugins;
			}
		}
		return $this->aPluginsList;
	}
avatar
Это уже исправленный вариант)
avatar
На днях исправил в нескольких местах.
avatar
Поддерживается ли markitup! в первой версии? думаю, что они обновили его в 2018 году. просто ненавижу новый wysiwyg
avatar
Скоро обновлю библиотеки.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.