Релиз LiveStreet 2.1.0

В новой версии ровно одно нововведение. Модуль Menu. Сделано в первую очередь, так как столкнулся с необходимостью гибко модифицировать менюшки из плагинов, кототрые выносятся из основного функционала.
Помимо этого в плагине админ панели добавлен раздел редактирования/создания меню.

Использование:
{insert name='block' block='menu' params=[ 'name' => "main", "activeItem" => $sMenuHeadItemSelect, "mods" => "main" ]}

Параметр name — код меню хранимого в бд и созданного например в админке.
Пример модификации для плагинов:
class PluginTest_HookMenu extends Hook{

    public function RegisterHook() {
        $this->AddHook('menu_before_prepare', 'Menu');
    }

    public function Menu($aParams) { 
        $oMenu = $aParams['menu'];
        
        $oItem = $oMenu->find('people');
        $oItem  ->after(Engine::GetEntity("ModuleMenu_EntityItem", [
                    'name' => 'after',
                    'title' => 'Hook2',
                    'url' => '/hook2' 
                ]))
                ->before(Engine::GetEntity("ModuleMenu_EntityItem", [
                    'name' => 'before',
                    'title' => 'Hook1'
                ]))
                ->appendChild(Engine::GetEntity("ModuleMenu_EntityItem", [
                    'name' => 'child1',
                    'title' => 'Hook4',
                    'url' => '/hook4' 
                ]))
                ->prependChild(Engine::GetEntity("ModuleMenu_EntityItem", [
                    'name' => 'child',
                    'title' => 'Hook3',
                    'url' => '/hook3' 
                ]));
    }

}

Поддерживается бесконечная вложенность.

Скачать можно по ссылке github.com/livestreet/livestreet/releases/tag/v2.1.0
Админ панель github.com/livestreet/lsplugin-admin/releases/tag/v1.1.0

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

avatar
Ссылка потерялась
avatar
И как скачать данное обновление?
avatar
avatar
В последней версии появляется ошибка:
Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/taradajk/news.zp.ua/www/framework/libs/vendor/DklabCache/Zend/Cache/Backend.php on line 68
В профиле:
Warning: count(): Parameter must be an array or an object that implements Countable in /home/taradajk/news.zp.ua/www/application/tmp/templates/compiled/synio/f16b79efc2d1f2f45e793aebe43706823d84c023.file.info.tpl.php on line 269
А также не устанавливается расширенная адмипанель, ошибка:
Ошибка: Системная ошибка, повторите позже

Использую PHP 7.2. Возможно ошибки из-за этого? Подскажите как быть. Есть готовая сборка с предустановленной админкой?
avatar
Вы обновлялись или ставили с нуля? Я протестирую еще. Посмотрите файл plugins/plugins.dat, чтобы не было строки admin
avatar
Ставлю с нуля, качал с GitHub. Возможно нужно было запускать composer?
avatar
PHP 7.0.32 Установилось нормально. И плагин админки тоже
avatar
Разумеется, дело в PHP 7.2

Потому что each и create_function в PHP 7.2 уже deprecated.
avatar
У меня есть перепиленная на PHP 7.2 версия, но, боюсь, я не готов с вами ею поделиться. Потому что код во множестве мест перепилен под наш проект и с базовым он может не заработать.

Вам очень-очень нужно или вы сможете на PHP 7.0 пожить?
avatar
Могу и на 7.0 положить. Но хотелось бы, чтобы LiveStreet изначально был под последнюю версию PHP.
avatar
изначально версия 1.0.3 была под PHP 5.2

В сети есть версия 1.0.4 под PHP 7.0

Я доделывал под свой проект под PHP 7.2
avatar
1. Для решения проблемы с устаревшим методом each()
В файле framework/libs/vendor/DklabCache/Zend/Cache/Backend.php нужно заменить строки:
while (list($name, $value) = each($options)) {

на
foreach ($options as $name=>$value) {

А также:
while (list($name, $value) = each($directives)) {

на
foreach ($directives as $key=>$value) {

2. Насчет второго случая ошибка в скомпилированном файле, править его не имеет смысла, нужно найти .tpl файл откуда он скоптилировался и заменить count(). Скорее всего просто убрать его, так как в некоторых шаблонах я замечал что проверка на существования массива проводится через if (count($array)). В таких случаях достаточно if ($array) или if (is_array($array)).
3. Либо вы можете полностью отключить вывод предупреждений, в файл Config.local.php вставьте в начало:
error_reporting(E_ERROR);

Таким образом Livestreet будет выводить только критические ошибки.
avatar
Ошибка не
foreach ($directives as $key=>$value) {

а
foreach ($directives as $name=>$value) {
avatar
Все же что лучше писать вместо if (count($array)):
if ($array) или if (is_array($array))?
avatar
if(count($aArray)) — сработает в случае если массив $aArray не пуст.
if(is_array($aArray)) — сработает в случае если переменная $aArray является массивом, то есть сработает для пустого массива.
if($aArray) — сработает с любым значением, которое приводится к true. Пустой масив в мире похапэ — false.

Как видите это три совершенно разные проверки.
комментарий был удален
avatar
Как инсталить LiveStreet_2.0.1 если нет папки INSTALL?
avatar
avatar
Отлично! Пожалуйста не забрасывайте проект, у вас Лучшее решение mvc cms блого-социальная сеть… У нас в городе даже ТОП сайт есть на вашем движке, privetsochi.ru. Вот решил попробовать шаблон сделать для Вашей cms. правда не совсем еще понимаю как bootstrap 4 поставить… Т.к. конфликтов будет =)))
avatar
Bootstrap 4 шаблон в разработке
avatar
Новая админка не ставится
avatar
Мда…
комментарий был удален
комментарий был удален
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.